Prechádzať zdrojové kódy

- add test for OpenMP environment parsing

Olivier Aumage 11 rokov pred
rodič
commit
2a38b1c99d
2 zmenil súbory, kde vykonal 52 pridanie a 0 odobranie
  1. 4 0
      tests/Makefile.am
  2. 48 0
      tests/openmp/environment.c

+ 4 - 0
tests/Makefile.am

@@ -220,6 +220,7 @@ noinst_PROGRAMS =				\
 	microbenchs/local_pingpong		\
 	microbenchs/matrix_as_vector		\
 	openmp/init_exit			\
+	openmp/environment			\
 	overlap/overlap				\
 	parallel_tasks/explicit_combined_worker	\
 	parallel_tasks/parallel_kernels		\
@@ -432,6 +433,9 @@ endif
 openmp_init_exit_SOURCES = 	\
 	openmp/init_exit.c
 
+openmp_environment_SOURCES = 	\
+	openmp/environment.c
+
 ###################
 # Block interface #
 ###################

+ 48 - 0
tests/openmp/environment.c

@@ -0,0 +1,48 @@
+/* StarPU --- Runtime system for heterogeneous multicore architectures.
+ *
+ * Copyright (C) 2014  Inria
+ *
+ * StarPU is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or (at
+ * your option) any later version.
+ *
+ * StarPU is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * See the GNU Lesser General Public License in COPYING.LGPL for more details.
+ */
+
+#include <starpu.h>
+#include "../helper.h"
+#include <stdlib.h>
+#include <stdio.h>
+
+#if !defined(STARPU_OPENMP)
+int main(int argc, char **argv)
+{
+	return STARPU_TEST_SKIPPED;
+}
+#else
+int
+main (int argc, char *argv[]) {
+	setenv("OMP_DYNAMIC","false", 1);
+	setenv("OMP_NESTED","false", 1);
+	setenv("OMP_SCHEDULE","auto", 1);
+	setenv("OMP_STACKSIZE","2M", 1);
+	setenv("OMP_WAIT_POLICY","passive", 1);
+	setenv("OMP_THREAD_LIMIT","0", 1);
+	setenv("OMP_MAX_ACTIVE_LEVELS","4", 1);
+	setenv("OMP_CANCELLATION","false", 1);
+	setenv("OMP_DEFAULT_DEVICE","0", 1);
+	setenv("OMP_PROC_BIND","spread, spread, close", 1);
+	setenv("OMP_NUM_THREADS","4, 2, 2", 1);
+	setenv("OMP_PLACES","{1,2,3,4},{5,6,7,8}", 1);
+	setenv("OMP_DISPLAY_ENV","verbose", 1);
+	int ret = starpu_omp_init();
+	STARPU_CHECK_RETURN_VALUE(ret, "starpu_omp_init");
+	starpu_omp_shutdown();
+	return 0;
+}
+#endif