[tor-commits] [tor/master] Remove NS*() macros from test.h.

nickm at torproject.org nickm at torproject.org
Thu Jan 9 21:02:50 UTC 2020


commit 42c6fc851e7ffbe96a632d6045a334136621c164
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Jan 9 10:29:56 2020 -0500

    Remove NS*() macros from test.h.
    
    We never used them very much, and although they had potential to
    clarify some of our tests, they also made some of the logic harder
    for people to follow.  Clang-format can't make head or tail of them,
    so the time has come to say goodbye to them.
---
 src/test/test.h | 97 ---------------------------------------------------------
 1 file changed, 97 deletions(-)

diff --git a/src/test/test.h b/src/test/test.h
index 2e1bed278..63e2faff9 100644
--- a/src/test/test.h
+++ b/src/test/test.h
@@ -81,103 +81,6 @@ struct crypto_pk_t *pk_generate(int idx);
 void init_pregenerated_keys(void);
 void free_pregenerated_keys(void);
 
-#define US2_CONCAT_2__(a, b) a ## __ ## b
-#define US_CONCAT_2__(a, b) a ## _ ## b
-#define US_CONCAT_3__(a, b, c) a ## _ ## b ## _ ## c
-#define US_CONCAT_2_(a, b) US_CONCAT_2__(a, b)
-#define US_CONCAT_3_(a, b, c) US_CONCAT_3__(a, b, c)
-
-/*
- * These macros are helpful for streamlining the authorship of several test
- * cases that use mocks.
- *
- * The pattern is as follows.
- * * Declare a top level namespace:
- *       #define NS_MODULE foo
- *
- * * For each test case you want to write, create a new submodule in the
- *   namespace. All mocks and other information should belong to a single
- *   submodule to avoid interference with other test cases.
- *   You can simply name the submodule after the function in the module you
- *   are testing:
- *       #define NS_SUBMODULE some_function
- *   or, if you're wanting to write several tests against the same function,
- *   ie., you are testing an aspect of that function, you can use:
- *       #define NS_SUBMODULE ASPECT(some_function, behavior)
- *
- * * Declare all the mocks you will use. The NS_DECL macro serves to declare
- *   the mock in the current namespace (defined by NS_MODULE and NS_SUBMODULE).
- *   It behaves like MOCK_DECL:
- *       NS_DECL(int, dependent_function, (void *));
- *   Here, dependent_function must be declared and implemented with the
- *   MOCK_DECL and MOCK_IMPL macros. The NS_DECL macro also defines an integer
- *   global for use for tracking how many times a mock was called, and can be
- *   accessed by CALLED(mock_name). For example, you might put
- *       CALLED(dependent_function)++;
- *   in your mock body.
- *
- * * Define a function called NS(main) that will contain the body of the
- *   test case. The NS macro can be used to reference a name in the current
- *   namespace.
- *
- * * In NS(main), indicate that a mock function in the current namespace,
- *   declared with NS_DECL is to override that in the global namespace,
- *   with the NS_MOCK macro:
- *       NS_MOCK(dependent_function)
- *   Unmock with:
- *       NS_UNMOCK(dependent_function)
- *
- * * Define the mocks with the NS macro, eg.,
- *       int
- *       NS(dependent_function)(void *)
- *       {
- *           CALLED(dependent_function)++;
- *       }
- *
- * * In the struct testcase_t array, you can use the TEST_CASE and
- *   TEST_CASE_ASPECT macros to define the cases without having to do so
- *   explicitly nor without having to reset NS_SUBMODULE, eg.,
- *       struct testcase_t foo_tests[] = {
- *         TEST_CASE_ASPECT(some_function, behavior),
- *         ...
- *         END_OF_TESTCASES
- *   which will define a test case named "some_function__behavior".
- */
-
-#define NAME_TEST_(name) #name
-#define NAME_TEST(name) NAME_TEST_(name)
-#define ASPECT(test_module, test_name) US2_CONCAT_2__(test_module, test_name)
-#ifndef COCCI
-#define TEST_CASE(function)  \
-  {  \
-      NAME_TEST(function),  \
-      NS_FULL(NS_MODULE, function, test_main),  \
-      TT_FORK,  \
-      NULL,  \
-      NULL,  \
-  }
-#define TEST_CASE_ASPECT(function, aspect)  \
-  {  \
-      NAME_TEST(ASPECT(function, aspect)),  \
-      NS_FULL(NS_MODULE, ASPECT(function, aspect), test_main),  \
-      TT_FORK,  \
-      NULL,  \
-      NULL,  \
-  }
-#endif /* !defined(COCCI) */
-
-#define NS(name) US_CONCAT_3_(NS_MODULE, NS_SUBMODULE, name)
-#define NS_FULL(module, submodule, name) US_CONCAT_3_(module, submodule, name)
-
-#define CALLED(mock_name) US_CONCAT_2_(NS(mock_name), called)
-#ifndef COCCI
-#define NS_DECL(retval, mock_fn, args) \
-    extern int CALLED(mock_fn);        \
-    static retval NS(mock_fn) args; int CALLED(mock_fn) = 0
-#define NS_MOCK(name) MOCK(name, NS(name))
-#endif /* !defined(COCCI) */
-#define NS_UNMOCK(name) UNMOCK(name)
-
 extern const struct testcase_setup_t passthrough_setup;
 extern const struct testcase_setup_t ed25519_test_setup;
 





More information about the tor-commits mailing list