|
From: <kin...@us...> - 2025-09-08 17:37:15
|
Revision: 7371
http://sourceforge.net/p/teem/code/7371
Author: kindlmann
Date: 2025-09-08 17:37:13 +0000 (Mon, 08 Sep 2025)
Log Message:
-----------
for new testing framework
Added Paths:
-----------
teem/trunk/tests/ctest/testutil.c
teem/trunk/tests/ctest/testutil.h
Added: teem/trunk/tests/ctest/testutil.c
===================================================================
--- teem/trunk/tests/ctest/testutil.c (rev 0)
+++ teem/trunk/tests/ctest/testutil.c 2025-09-08 17:37:13 UTC (rev 7371)
@@ -0,0 +1,74 @@
+/* testutil: minimal testing library functions for Teem
+ Copyright (C) 2025 University of Chicago
+ See ../../LICENSE.txt for licensing terms */
+
+#include <stdlib.h> /* for getenv, malloc */
+#include <string.h> /* for strlen */
+#include <stdio.h> /* for fprintf */
+#include <assert.h> /* for assert */
+
+#include "testutil.h"
+
+// prependEnvVar(envVar, fName) returns a *newly-allocated* string concatenating
+// the value of environment variable `envVar`, '/', and `fName`
+static char *
+prependEnvVar(const char *envVar, const char *fName) {
+ if (!(envVar && strlen(envVar) && fName && strlen(fName))) {
+ fprintf(stderr, "%s: ERROR: got NULL (or empty) envvar or file name\n", __func__);
+ return NULL;
+ }
+ const char *evStr = getenv(envVar);
+ if (!evStr) {
+ fprintf(stderr,
+ "%s: ERROR: environment variable \"%s\" not set\n",
+ __func__,
+ envVar);
+ return NULL;
+ }
+ size_t evLen = strlen(evStr);
+ if (!evLen) {
+ fprintf(stderr,
+ "%s: ERROR: environment variable \"%s\" set to empty string\n",
+ __func__,
+ envVar);
+ return NULL;
+ }
+ size_t fNameLen = strlen(fName);
+ char *ret = malloc(evLen + strlen("/") + fNameLen + 1);
+ assert(ret);
+ strcpy(ret, evStr);
+ ret[evLen] = '/';
+ strcpy(ret + evLen + 1, fName);
+ return ret;
+}
+
+// for test data filename `fName`, this returns a new-allocated path to it
+char *
+teemTestDataPath(const char *fName) {
+ return prependEnvVar("TEEM_TEST_DATA_DIR", fName);
+}
+
+// for temporary file name `fName`, this returns a new-allocated path to it
+char *
+teemTestTmpPath(const char *fName) {
+ return prependEnvVar("TEEM_TEST_TMP_DIR", fName);
+}
+
+/* (for testing)
+int
+main(int argc, const char *argv[]) {
+ if (argc == 2) {
+ char *ret = teemTestDataPath(argv[1]);
+ if (ret) {
+ printf("teemTestDataPath: |%s|\n", ret);
+ free(ret);
+ }
+ ret = teemTestTmpPath(argv[1]);
+ if (ret) {
+ printf("teemTestTmpPath: |%s|\n", ret);
+ free(ret);
+ }
+ }
+ return 0;
+}
+*/
Added: teem/trunk/tests/ctest/testutil.h
===================================================================
--- teem/trunk/tests/ctest/testutil.h (rev 0)
+++ teem/trunk/tests/ctest/testutil.h 2025-09-08 17:37:13 UTC (rev 7371)
@@ -0,0 +1,19 @@
+/* testutil: minimal testing library functions for Teem
+ Copyright (C) 2025 University of Chicago
+ See ../../LICENSE.txt for licensing terms */
+
+#ifndef TEEM_TESTUTIL_H
+#define TEEM_TESTUTIL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern char *teemTestDataPath(const char *fName);
+extern char *teemTestTmpPath(const char *fName);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|