Commit 4ba629e6 authored by André Almeida's avatar André Almeida Committed by Thomas Gleixner
Browse files

selftests/futex: Refactor futex_priv_hash with kselftest_harness.h



To reduce the boilerplate code, refactor futex_priv_hash test to use
kselftest_harness header instead of futex's logging header.

Signed-off-by: default avatarAndré Almeida <andrealmeid@igalia.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent a91e8e37
Loading
Loading
Loading
Loading
+7 −41
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@
#include <linux/prctl.h>
#include <sys/prctl.h>

#include "logging.h"
#include "../../kselftest_harness.h"

#define MAX_THREADS	64

@@ -128,45 +128,14 @@ static void futex_dummy_op(void)
		ksft_exit_fail_msg("pthread_mutex_timedlock() did not timeout: %d.\n", ret);
}

static void usage(char *prog)
{
	printf("Usage: %s\n", prog);
	printf("  -c    Use color\n");
	printf("  -h    Display this help message\n");
	printf("  -v L  Verbosity level: %d=QUIET %d=CRITICAL %d=INFO\n",
	       VQUIET, VCRITICAL, VINFO);
}

static const char *test_msg_auto_create = "Automatic hash bucket init on thread creation.\n";
static const char *test_msg_auto_inc = "Automatic increase with more than 16 CPUs\n";

int main(int argc, char *argv[])
TEST(priv_hash)
{
	int futex_slots1, futex_slotsn, online_cpus;
	pthread_mutexattr_t mutex_attr_pi;
	int ret, retry = 20;
	int c;

	while ((c = getopt(argc, argv, "chv:")) != -1) {
		switch (c) {
		case 'c':
			log_color(1);
			break;
		case 'h':
			usage(basename(argv[0]));
			exit(0);
			break;
		case 'v':
			log_verbosity(atoi(optarg));
			break;
		default:
			usage(basename(argv[0]));
			exit(1);
		}
	}

	ksft_print_header();
	ksft_set_plan(21);

	ret = pthread_mutexattr_init(&mutex_attr_pi);
	ret |= pthread_mutexattr_setprotocol(&mutex_attr_pi, PTHREAD_PRIO_INHERIT);
@@ -279,7 +248,7 @@ int main(int argc, char *argv[])
	ret = futex_hash_slots_set(0);
	ksft_test_result(ret == 0, "Global hash request\n");
	if (ret != 0)
		goto out;
		return;

	futex_hash_slots_set_must_fail(4);
	futex_hash_slots_set_must_fail(8);
@@ -288,17 +257,14 @@ int main(int argc, char *argv[])
	futex_hash_slots_set_must_fail(6);

	ret = pthread_barrier_init(&barrier_main, NULL, MAX_THREADS);
	if (ret != 0) {
	if (ret != 0)
		ksft_exit_fail_msg("pthread_barrier_init failed: %m\n");
		return 1;
	}

	create_max_threads(thread_lock_fn);
	join_max_threads();

	ret = futex_hash_slots_get();
	ksft_test_result(ret == 0, "Continue to use global hash\n");

out:
	ksft_finished();
	return 0;
}

TEST_HARNESS_MAIN
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ echo
./futex_waitv

echo
./futex_priv_hash $COLOR
./futex_priv_hash

echo
./futex_numa_mpol $COLOR