]> granicus.if.org Git - libevent/commitdiff
Detect broken unsetenv at unit-test runtime
authorNick Mathewson <nickm@torproject.org>
Wed, 21 Apr 2010 16:25:29 +0000 (12:25 -0400)
committerNick Mathewson <nickm@torproject.org>
Sat, 8 May 2010 18:36:59 +0000 (14:36 -0400)
If we have an unsetenv function that doesn't work, we can't run the
main/base_environ unit test, so we should skip it.

test/regress.c

index 532542a6ff5cbfd41f33c8e25a6fcd866040b84c..c230e1db03bf1249492319e1953942d9ef2d52af 100644 (file)
@@ -1831,6 +1831,18 @@ test_base_environ(void *arg)
        int i, n_methods=0;
        const char *defaultname;
 
+       /* See if unsetenv works before we rely on it. */
+       setenv("EVENT_NOWAFFLES", "1", 1);
+       unsetenv("EVENT_NOWAFFLES");
+       if (getenv("EVENT_NOWAFFLES") != NULL) {
+#ifndef _EVENT_HAVE_UNSETENV
+               TT_DECLARE("NOTE", ("Can't fake unsetenv; skipping test"));
+#else
+               TT_DECLARE("NOTE", ("unsetenv doesn't work; skipping test"));
+#endif
+               tt_skip();
+       }
+
        basenames = event_get_supported_methods();
        for (i = 0; basenames[i]; ++i) {
                methodname_to_envvar(basenames[i], varbuf, sizeof(varbuf));