Date: Sun, 15 Jul 2012 22:06:08 +0000 From: gmiller@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r239444 - in soc2012/gmiller/locking-head: . tools/regression/lib/libwitness Message-ID: <20120715220608.3A487106566B@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gmiller Date: Sun Jul 15 22:06:07 2012 New Revision: 239444 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=239444 Log: r239385@FreeBSD-dev: root | 2012-07-13 19:11:05 -0500 Add basic libwitness testing. Added: soc2012/gmiller/locking-head/tools/regression/lib/libwitness/Makefile soc2012/gmiller/locking-head/tools/regression/lib/libwitness/check.c - copied unchanged from r239441, soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/check.c soc2012/gmiller/locking-head/tools/regression/lib/libwitness/check.h - copied unchanged from r239441, soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/check.h soc2012/gmiller/locking-head/tools/regression/lib/libwitness/lor-basic.c soc2012/gmiller/locking-head/tools/regression/lib/libwitness/lor-basic.t - copied unchanged from r238936, soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/lock-cycle.t Deleted: soc2012/gmiller/locking-head/tools/regression/lib/libwitness/witness.t Modified: soc2012/gmiller/locking-head/ (props changed) Added: soc2012/gmiller/locking-head/tools/regression/lib/libwitness/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/gmiller/locking-head/tools/regression/lib/libwitness/Makefile Sun Jul 15 22:06:07 2012 (r239444) @@ -0,0 +1,15 @@ +# $FreeBSD$ + +TESTS= lor-basic +CFLAGS+= -g -Wall -Wextra -Werror -lwitness + +.PHONY: tests +tests: ${TESTS} + for p in ${TESTS}; do ${.OBJDIR}/$$p; done + +.PHONY: clean +clean: + -rm -f ${TESTS} + +lor-basic: lor-basic.c check.c + ${CC} -o lor-basic lor-basic.c check.c ${CFLAGS} Copied: soc2012/gmiller/locking-head/tools/regression/lib/libwitness/check.c (from r239441, soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/check.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/gmiller/locking-head/tools/regression/lib/libwitness/check.c Sun Jul 15 22:06:07 2012 (r239444, copy of r239441, soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/check.c) @@ -0,0 +1,36 @@ + +#include <stdio.h> + +#define MAX_TESTS (100) + +int success_count = 0; +int fail_count = 0; +char result[MAX_TESTS]; + +void +check(char cond) +{ + result[success_count + fail_count] = cond; + + if (cond) { + success_count++; + } else { + fail_count++; + } +} + +void +show_test_results(void) +{ + int i; + + printf("1..%d\n", success_count + fail_count); + + for (i = 1; i <= success_count + fail_count; i++) { + if (result[i - 1]) { + printf("ok %d\n", i); + } else { + printf("not ok %d\n", i); + } + } +} Copied: soc2012/gmiller/locking-head/tools/regression/lib/libwitness/check.h (from r239441, soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/check.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/gmiller/locking-head/tools/regression/lib/libwitness/check.h Sun Jul 15 22:06:07 2012 (r239444, copy of r239441, soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/check.h) @@ -0,0 +1,3 @@ + +void check(char cond); +void show_test_results(void); Added: soc2012/gmiller/locking-head/tools/regression/lib/libwitness/lor-basic.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/gmiller/locking-head/tools/regression/lib/libwitness/lor-basic.c Sun Jul 15 22:06:07 2012 (r239444) @@ -0,0 +1,57 @@ + +#include <pthread.h> +#include <pthread_np.h> + +#include "check.h" + +void +lor_basic_test(void) +{ + pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; + pthread_mutex_t mutex2 = PTHREAD_MUTEX_INITIALIZER; + pthread_mutex_t mutex3 = PTHREAD_MUTEX_INITIALIZER; + + pthread_mutex_lock(&mutex1); + pthread_mutex_lock(&mutex2); + + pthread_mutex_unlock(&mutex2); + pthread_mutex_unlock(&mutex1); + + pthread_mutex_lock(&mutex2); + pthread_mutex_lock(&mutex3); + + pthread_mutex_unlock(&mutex3); + pthread_mutex_unlock(&mutex2); + + pthread_mutex_lock(&mutex3); + pthread_mutex_lock(&mutex1); + + pthread_mutex_unlock(&mutex1); + pthread_mutex_unlock(&mutex3); +} + +void +check_lor_basic(void) +{ + int record_count = 0; + struct pthread_lock_order_np lor; + + pthread_lor_begin_np(&lor); + while (pthread_lor_next_np(&lor)) { + record_count++; + } + pthread_lor_end_np(&lor); + + check(record_count == 1); +} + +int +main(void) +{ + lor_basic_test(); + check_lor_basic(); + + show_test_results(); + + return 0; +} Copied: soc2012/gmiller/locking-head/tools/regression/lib/libwitness/lor-basic.t (from r238936, soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/lock-cycle.t) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ soc2012/gmiller/locking-head/tools/regression/lib/libwitness/lor-basic.t Sun Jul 15 22:06:07 2012 (r239444, copy of r238936, soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/lock-cycle.t) @@ -0,0 +1,10 @@ +#!/bin/sh +# $FreeBSD$ + +cd `dirname $0` + +executable=`basename $0 .t` + +make $executable 2>&1 > /dev/null + +exec ./$executable
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120715220608.3A487106566B>