Skip site navigation (1)Skip section navigation (2)
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>