socsvn commit: r239445 - in soc2012/gmiller/locking-head: .
tools/regression/lib/libthr/lockprof
gmiller at FreeBSD.org
gmiller at FreeBSD.org
Sun Jul 15 22:06:25 UTC 2012
Author: gmiller
Date: Sun Jul 15 22:06:23 2012
New Revision: 239445
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=239445
Log:
r239386 at FreeBSD-dev: root | 2012-07-13 19:44:47 -0500
Give the conflict tests their own file.
Added:
soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/conflict.c
soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/conflict.t
- copied unchanged from r238936, soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/lock-cycle.t
Modified:
soc2012/gmiller/locking-head/ (props changed)
soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/Makefile
soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/lock-cycle.c
Modified: soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/Makefile
==============================================================================
--- soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/Makefile Sun Jul 15 22:06:07 2012 (r239444)
+++ soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/Makefile Sun Jul 15 22:06:23 2012 (r239445)
@@ -1,6 +1,6 @@
# $FreeBSD$
-TESTS= lock-cycle recurse
+TESTS= lock-cycle recurse conflict
CFLAGS+= -DLOCK_PROFILING -g -Wall -Wextra -Werror -lthr_profile
.PHONY: tests
@@ -16,3 +16,6 @@
recurse: recurse.c check.c
${CC} -o recurse recurse.c check.c ${CFLAGS}
+
+conflict: conflict.c check.c
+ ${CC} -o conflict conflict.c check.c ${CFLAGS}
Added: soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/conflict.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/conflict.c Sun Jul 15 22:06:23 2012 (r239445)
@@ -0,0 +1,73 @@
+
+#include <pthread.h>
+#include <pthread_np.h>
+#include <unistd.h>
+
+#include "check.h"
+
+pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+
+void *
+conflict_thread_func(void *v)
+{
+ v = v;
+
+ pthread_mutex_lock(&mutex);
+
+ sleep(5);
+
+ pthread_mutex_unlock(&mutex);
+
+ return NULL;
+}
+
+void
+conflict_test()
+{
+ pthread_t thread1;
+ pthread_t thread2;
+
+ pthread_statistics_reset_np();
+
+ pthread_create(&thread1, NULL, conflict_thread_func, NULL);
+ pthread_create(&thread2, NULL, conflict_thread_func, NULL);
+
+ pthread_join(thread2, NULL);
+ pthread_join(thread1, NULL);
+}
+
+void
+check_stats_conflict(void)
+{
+ int record_count = 0;
+ struct pthread_statistics_np stats;
+ long tm;
+
+ pthread_statistics_begin_np(&stats);
+ while (pthread_statistics_next_np(&stats)) {
+ record_count++;
+ }
+ pthread_statistics_end_np(&stats);
+
+ check(record_count == 1);
+
+ check(stats.contest_count == 1);
+
+ tm = stats.wait_time.tv_sec * 1000000L +
+ stats.wait_time.tv_nsec / 1000;
+ check(tm > 0);
+
+ tm = stats.wait_max.tv_sec * 1000000L + stats.wait_max.tv_nsec / 1000;
+ check(tm > 0);
+}
+
+int
+main(void)
+{
+ conflict_test();
+ check_stats_conflict();
+
+ show_test_results();
+
+ return 0;
+}
Copied: soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/conflict.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/libthr/lockprof/conflict.t Sun Jul 15 22:06:23 2012 (r239445, 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
Modified: soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/lock-cycle.c
==============================================================================
--- soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/lock-cycle.c Sun Jul 15 22:06:07 2012 (r239444)
+++ soc2012/gmiller/locking-head/tools/regression/lib/libthr/lockprof/lock-cycle.c Sun Jul 15 22:06:23 2012 (r239445)
@@ -53,35 +53,6 @@
pthread_statistics_reset_np();
}
-void *
-conflict_thread_func(void *v)
-{
- v = v;
-
- pthread_mutex_lock(&mutex);
-
- sleep(5);
-
- pthread_mutex_unlock(&mutex);
-
- return NULL;
-}
-
-void
-conflict_test()
-{
- pthread_t thread1;
- pthread_t thread2;
-
- pthread_statistics_reset_np();
-
- pthread_create(&thread1, NULL, conflict_thread_func, NULL);
- pthread_create(&thread2, NULL, conflict_thread_func, NULL);
-
- pthread_join(thread2, NULL);
- pthread_join(thread1, NULL);
-}
-
void
check_stats_single(void)
{
@@ -159,31 +130,6 @@
check(record_count == 0);
}
-void
-check_stats_conflict(void)
-{
- int record_count = 0;
- struct pthread_statistics_np stats;
- long tm;
-
- pthread_statistics_begin_np(&stats);
- while (pthread_statistics_next_np(&stats)) {
- record_count++;
- }
- pthread_statistics_end_np(&stats);
-
- check(record_count == 1);
-
- check(stats.contest_count == 1);
-
- tm = stats.wait_time.tv_sec * 1000000L +
- stats.wait_time.tv_nsec / 1000;
- check(tm > 0);
-
- tm = stats.wait_max.tv_sec * 1000000L + stats.wait_max.tv_nsec / 1000;
- check(tm > 0);
-}
-
int
main(void)
{
@@ -196,9 +142,6 @@
multi_cycle();
check_stats_multi();
- conflict_test();
- check_stats_conflict();
-
show_test_results();
return 0;
More information about the svn-soc-all
mailing list