Browse Source

Clean up unit tests

Don't use the symlinked-header trick that we previously used to include
application headers in the tests; instead change from using:

> #include "..."

to

> #include <...>

... generally, so it is possible to override included headers via the
include path; use this in the tests to override various headers, instead
of duplicating the entire "includes" directory via symlinks to a
combination of the original headers plus mock headers.
Davin McCall 8 months ago
parent
commit
65486892b8
57 changed files with 49 additions and 103 deletions
  1. 1 1
      src/includes/baseproc-sys.h
  2. 5 5
      src/includes/control.h
  3. 1 1
      src/includes/cpbuffer.h
  4. 3 3
      src/includes/dinit-client.h
  5. 2 2
      src/includes/dinit-env.h
  6. 1 1
      src/includes/dinit-util.h
  7. 1 1
      src/includes/dinit-utmp.h
  8. 5 5
      src/includes/load-service.h
  9. 1 1
      src/includes/options-processing.h
  10. 3 3
      src/includes/proc-service.h
  11. 1 1
      src/includes/service-constants.h
  12. 1 1
      src/includes/service-listener.h
  13. 11 11
      src/includes/service.h
  14. 3 3
      src/tests/Makefile
  15. 5 5
      src/tests/cptests/Makefile
  16. 5 5
      src/tests/cptests/cptests.cc
  17. 0 1
      src/tests/cptests/includes/baseproc-sys.h
  18. 0 1
      src/tests/cptests/includes/control-cmds.h
  19. 0 1
      src/tests/cptests/includes/control.h
  20. 0 1
      src/tests/cptests/includes/cpbuffer.h
  21. 0 1
      src/tests/cptests/includes/dinit-client.h
  22. 0 1
      src/tests/cptests/includes/dinit-env.h
  23. 0 1
      src/tests/cptests/includes/dinit-ll.h
  24. 0 1
      src/tests/cptests/includes/dinit-log.h
  25. 0 1
      src/tests/cptests/includes/dinit-socket.h
  26. 0 1
      src/tests/cptests/includes/dinit-util.h
  27. 0 1
      src/tests/cptests/includes/dinit-utmp.h
  28. 0 1
      src/tests/cptests/includes/dinit.h
  29. 0 1
      src/tests/cptests/includes/load-service.h
  30. 0 1
      src/tests/cptests/includes/options-processing.h
  31. 0 1
      src/tests/cptests/includes/proc-service.h
  32. 0 1
      src/tests/cptests/includes/service-constants.h
  33. 0 1
      src/tests/cptests/includes/service-dir.h
  34. 0 1
      src/tests/cptests/includes/service-listener.h
  35. 0 1
      src/tests/cptests/includes/service.h
  36. 0 1
      src/tests/cptests/includes/static-string.h
  37. 0 1
      src/tests/includes/baseproc-sys.h
  38. 0 1
      src/tests/includes/control-cmds.h
  39. 0 1
      src/tests/includes/control.h
  40. 0 1
      src/tests/includes/cpbuffer.h
  41. 0 1
      src/tests/includes/dinit-client.h
  42. 0 1
      src/tests/includes/dinit-env.h
  43. 0 1
      src/tests/includes/dinit-ll.h
  44. 0 1
      src/tests/includes/dinit-log.h
  45. 0 1
      src/tests/includes/dinit-socket.h
  46. 0 1
      src/tests/includes/dinit-util.h
  47. 0 1
      src/tests/includes/dinit-utmp.h
  48. 0 1
      src/tests/includes/dinit.h
  49. 0 1
      src/tests/includes/load-service.h
  50. 0 1
      src/tests/includes/options-processing.h
  51. 0 1
      src/tests/includes/proc-service.h
  52. 0 1
      src/tests/includes/service-constants.h
  53. 0 1
      src/tests/includes/service-dir.h
  54. 0 1
      src/tests/includes/service-listener.h
  55. 0 1
      src/tests/includes/service.h
  56. 0 1
      src/tests/includes/static-string.h
  57. 0 14
      src/tests/test-includes/control.h

+ 1 - 1
src/includes/baseproc-sys.h

@@ -10,7 +10,7 @@
 
 #include <cstdlib> // getenv
 
-#include "dasynq.h" // for pipe2
+#include <dasynq.h> // for pipe2
 
 #include <sys/uio.h> // writev
 #include <unistd.h>

+ 5 - 5
src/includes/control.h

@@ -10,11 +10,11 @@
 
 #include <unistd.h>
 
-#include "dinit.h"
-#include "dinit-log.h"
-#include "control-cmds.h"
-#include "service-listener.h"
-#include "cpbuffer.h"
+#include <dinit.h>
+#include <dinit-log.h>
+#include <control-cmds.h>
+#include <service-listener.h>
+#include <cpbuffer.h>
 
 // Control connection for dinit
 

+ 1 - 1
src/includes/cpbuffer.h

@@ -5,7 +5,7 @@
 #include <cstring>
 #include <algorithm>
 
-#include "baseproc-sys.h"
+#include <baseproc-sys.h>
 
 // control protocol buffer, a circular buffer with fixed capacity.
 template <unsigned SIZE> class cpbuffer

+ 3 - 3
src/includes/dinit-client.h

@@ -4,9 +4,9 @@
 #include <sys/types.h>
 #include <pwd.h>
 
-#include "mconfig.h"
-#include "cpbuffer.h"
-#include "control-cmds.h"
+#include <mconfig.h>
+#include <cpbuffer.h>
+#include <control-cmds.h>
 
 // Client library for Dinit clients
 

+ 2 - 2
src/includes/dinit-env.h

@@ -4,8 +4,8 @@
 #include <unordered_map>
 #include <string>
 
-#include "dinit-util.h"
-#include "baseproc-sys.h"
+#include <dinit-util.h>
+#include <baseproc-sys.h>
 
 class environment;
 extern environment main_env;

+ 1 - 1
src/includes/dinit-util.h

@@ -15,7 +15,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "baseproc-sys.h"
+#include <baseproc-sys.h>
 
 // Check if a value is one of several possible values.
 // Use like:     value(x).is_in(1,2,3)

+ 1 - 1
src/includes/dinit-utmp.h

@@ -3,7 +3,7 @@
 #ifndef DINIT_UTMP_H_INCLUDED
 #define DINIT_UTMP_H_INCLUDED
 
-#include "mconfig.h"  // pull in any explicit configuration
+#include <mconfig.h>  // pull in any explicit configuration
 
 // Configuration:
 // USE_UTMPX - whether to update the utmp[x] database. If 0, no-op stubs are defined.

+ 5 - 5
src/includes/load-service.h

@@ -15,11 +15,11 @@
 #include <grp.h>
 #include <pwd.h>
 
-#include "dinit-env.h"
-#include "dinit-utmp.h"
-#include "dinit-util.h"
-#include "service-constants.h"
-#include "mconfig.h"
+#include <dinit-env.h>
+#include <dinit-utmp.h>
+#include <dinit-util.h>
+#include <service-constants.h>
+#include <mconfig.h>
 
 struct service_flags_t
 {

+ 1 - 1
src/includes/options-processing.h

@@ -3,7 +3,7 @@
 
 #include <vector>
 
-#include "service-dir.h"
+#include <service-dir.h>
 
 class service_dir_opt
 {

+ 3 - 3
src/includes/proc-service.h

@@ -5,9 +5,9 @@
 #include <sys/types.h>
 #include <sys/resource.h>
 
-#include "baseproc-sys.h"
-#include "service.h"
-#include "dinit-utmp.h"
+#include <baseproc-sys.h>
+#include <service.h>
+#include <dinit-utmp.h>
 
 // This header defines base_proc_service (base process service) and several derivatives, as well as some
 // utility functions and classes. See service.h for full details of services.

+ 1 - 1
src/includes/service-constants.h

@@ -1,7 +1,7 @@
 #ifndef SERVICE_CONSTANTS_H
 #define SERVICE_CONSTANTS_H
 
-#include "mconfig.h"
+#include <mconfig.h>
 
 /* Service states */
 enum class service_state_t {

+ 1 - 1
src/includes/service-listener.h

@@ -1,7 +1,7 @@
 #ifndef SERVICE_LISTENER_H
 #define SERVICE_LISTENER_H
 
-#include "service-constants.h"
+#include <service-constants.h>
 
 class service_record;
 

+ 11 - 11
src/includes/service.h

@@ -8,17 +8,17 @@
 #include <unordered_set>
 #include <algorithm>
 
-#include "dasynq.h"
-
-#include "dinit.h"
-#include "control.h"
-#include "service-listener.h"
-#include "service-constants.h"
-#include "load-service.h"
-#include "dinit-ll.h"
-#include "dinit-log.h"
-#include "service-dir.h"
-#include "dinit-env.h"
+#include <dasynq.h>
+
+#include <dinit.h>
+#include <control.h>
+#include <service-listener.h>
+#include <service-constants.h>
+#include <load-service.h>
+#include <dinit-ll.h>
+#include <dinit-log.h>
+#include <service-dir.h>
+#include <dinit-env.h>
 
 /*
  * This header defines service_record, a data record maintaining information about a service,

+ 3 - 3
src/tests/Makefile

@@ -4,7 +4,7 @@ ALL_TEST_CXXFLAGS=$(CPPFLAGS) $(TEST_CXXFLAGS) $(TEST_CXXFLAGS_EXTRA)
 ALL_TEST_LDFLAGS=$(TEST_LDFLAGS) $(TEST_LDFLAGS_EXTRA)
 
 objects = tests.o test-dinit.o proctests.o loadtests.o envtests.o test-run-child-proc.o test-bpsys.o
-parent_objs = service.o proc-service.o dinit-log.o load-service.o baseproc-service.o dinit-env.o
+parent_objs = service.o proc-service.o dinit-log.o load-service.o baseproc-service.o dinit-env.o control.o
 
 check: build-tests run-tests
 
@@ -31,10 +31,10 @@ envtests: $(parent_objs) envtests.o test-dinit.o test-bpsys.o test-run-child-pro
 	$(CXX) -o envtests $(parent_objs) envtests.o test-dinit.o test-bpsys.o test-run-child-proc.o $(ALL_TEST_LDFLAGS)
 
 $(objects): %.o: %.cc
-	$(CXX) $(ALL_TEST_CXXFLAGS) -MMD -MP -Iincludes -I../../dasynq/include -I../../build/includes -c $< -o $@
+	$(CXX) $(ALL_TEST_CXXFLAGS) -MMD -MP -Itest-includes -I../../dasynq/include -I../../build/includes -I../includes -c $< -o $@
 
 $(parent_objs): %.o: ../%.cc
-	$(CXX) $(ALL_TEST_CXXFLAGS) -MMD -MP -Iincludes -I../../dasynq/include -I../../build/includes -c $< -o $@
+	$(CXX) $(ALL_TEST_CXXFLAGS) -MMD -MP -Itest-includes -I../../dasynq/include -I../../build/includes -I../includes -c $< -o $@
 
 clean:
 	$(MAKE) -C cptests clean

+ 5 - 5
src/tests/cptests/Makefile

@@ -18,10 +18,10 @@ cptests: cptests.o $(parent_objs) $(parent_test_objs)
 	$(CXX) -o cptests cptests.o $(parent_test_objects) $(parent_objs) $(ALL_TEST_LDFLAGS)
 
 $(objects): %.o: %.cc
-	$(CXX) $(ALL_TEST_CXXFLAGS) -MMD -MP -Iincludes -I../../../dasynq/include -I../../../build/includes -c $< -o $@
+	$(CXX) $(ALL_TEST_CXXFLAGS) -MMD -MP -I../test-includes -I../../../dasynq/include -I../../../build/includes -I../../includes -c $< -o $@
 
 $(parent_objs): %.o: ../../%.cc
-	$(CXX) $(ALL_TEST_CXXFLAGS) -MMD -MP -Iincludes -I../../../dasynq/include -I../../../build/includes -c $< -o $@
+	$(CXX) $(ALL_TEST_CXXFLAGS) -MMD -MP -I../test-includes -I../../../dasynq/include -I../../../build/includes -I../../includes -c $< -o $@
 
 clean:
 	rm -f *.o *.d cptests
@@ -41,13 +41,13 @@ fuzz_objects = $(foreach obj,$(parent_objs),fuzz-$(obj))
 	$(MAKE) -C ../../../build all
 
 fuzz: ../../../build/includes/mconfig.h fuzz.cc $(fuzz_parent_test_objects) $(fuzz_objects)
-	clang++ -std=c++11 -g -O1 -Iincludes -I../../../dasynq/include -I../../../build/includes/ -fsanitize=fuzzer,address,undefined,leak fuzz.cc $(fuzz_parent_test_objects) $(fuzz_objects) -o fuzz
+	clang++ -std=c++11 -g -O1 -I../test-includes -I../../../dasynq/include -I../../../build/includes/ -I../../includes -fsanitize=fuzzer,address,undefined,leak fuzz.cc $(fuzz_parent_test_objects) $(fuzz_objects) -o fuzz
 
 $(fuzz_parent_test_objects): fuzz-%.o: ../%.cc
-	clang -O1 -fsanitize=address,undefined,fuzzer-no-link,leak -MMD -MP -Iincludes -I../../../dasynq/include -I../../../build/includes/ -c $< -o $@
+	clang -O1 -fsanitize=address,undefined,fuzzer-no-link,leak -MMD -MP -I../test-includes -I../../../dasynq/include -I../../../build/includes/ -I../../includes -c $< -o $@
 
 $(fuzz_objects): fuzz-%.o: ../../%.cc
-	clang -O1 -fsanitize=address,undefined,fuzzer-no-link,leak -MMD -MP -Iincludes -I../../../dasynq/include -I../../../build/includes/ -c $< -o $@
+	clang -O1 -fsanitize=address,undefined,fuzzer-no-link,leak -MMD -MP -I../test-includes -I../../../dasynq/include -I../../../build/includes/ -I../../includes -c $< -o $@
 
 
 -include $(objects:.o=.d)

+ 5 - 5
src/tests/cptests/cptests.cc

@@ -4,11 +4,11 @@
 #include <string>
 #include <set>
 
-#include "dinit.h"
-#include "service.h"
-#include "baseproc-sys.h"
-#include "proc-service.h"
-#include "control.h"
+#include <dinit.h>
+#include <service.h>
+#include <baseproc-sys.h>
+#include <proc-service.h>
+#include <control.h>
 
 #include "../test_service.h"
 #include "../test_procservice.h"

+ 0 - 1
src/tests/cptests/includes/baseproc-sys.h

@@ -1 +0,0 @@
-../../test-includes/baseproc-sys.h

+ 0 - 1
src/tests/cptests/includes/control-cmds.h

@@ -1 +0,0 @@
-../../../includes/control-cmds.h

+ 0 - 1
src/tests/cptests/includes/control.h

@@ -1 +0,0 @@
-../../../includes/control.h

+ 0 - 1
src/tests/cptests/includes/cpbuffer.h

@@ -1 +0,0 @@
-../../../includes/cpbuffer.h

+ 0 - 1
src/tests/cptests/includes/dinit-client.h

@@ -1 +0,0 @@
-../../../includes/dinit-client.h

+ 0 - 1
src/tests/cptests/includes/dinit-env.h

@@ -1 +0,0 @@
-../../../includes/dinit-env.h

+ 0 - 1
src/tests/cptests/includes/dinit-ll.h

@@ -1 +0,0 @@
-../../../includes/dinit-ll.h

+ 0 - 1
src/tests/cptests/includes/dinit-log.h

@@ -1 +0,0 @@
-../../../includes/dinit-log.h

+ 0 - 1
src/tests/cptests/includes/dinit-socket.h

@@ -1 +0,0 @@
-../../../includes/dinit-socket.h

+ 0 - 1
src/tests/cptests/includes/dinit-util.h

@@ -1 +0,0 @@
-../../../includes/dinit-util.h

+ 0 - 1
src/tests/cptests/includes/dinit-utmp.h

@@ -1 +0,0 @@
-../../../includes/dinit-utmp.h

+ 0 - 1
src/tests/cptests/includes/dinit.h

@@ -1 +0,0 @@
-../../test-includes/dinit.h

+ 0 - 1
src/tests/cptests/includes/load-service.h

@@ -1 +0,0 @@
-../../../includes/load-service.h

+ 0 - 1
src/tests/cptests/includes/options-processing.h

@@ -1 +0,0 @@
-../../../includes/options-processing.h

+ 0 - 1
src/tests/cptests/includes/proc-service.h

@@ -1 +0,0 @@
-../../../includes/proc-service.h

+ 0 - 1
src/tests/cptests/includes/service-constants.h

@@ -1 +0,0 @@
-../../../includes/service-constants.h

+ 0 - 1
src/tests/cptests/includes/service-dir.h

@@ -1 +0,0 @@
-../../../includes/service-dir.h

+ 0 - 1
src/tests/cptests/includes/service-listener.h

@@ -1 +0,0 @@
-../../../includes/service-listener.h

+ 0 - 1
src/tests/cptests/includes/service.h

@@ -1 +0,0 @@
-../../../includes/service.h

+ 0 - 1
src/tests/cptests/includes/static-string.h

@@ -1 +0,0 @@
-../../../includes/static-string.h

+ 0 - 1
src/tests/includes/baseproc-sys.h

@@ -1 +0,0 @@
-../test-includes/baseproc-sys.h

+ 0 - 1
src/tests/includes/control-cmds.h

@@ -1 +0,0 @@
-../../includes/control-cmds.h

+ 0 - 1
src/tests/includes/control.h

@@ -1 +0,0 @@
-../test-includes/control.h

+ 0 - 1
src/tests/includes/cpbuffer.h

@@ -1 +0,0 @@
-../../includes/cpbuffer.h

+ 0 - 1
src/tests/includes/dinit-client.h

@@ -1 +0,0 @@
-../../includes/dinit-client.h

+ 0 - 1
src/tests/includes/dinit-env.h

@@ -1 +0,0 @@
-../../includes/dinit-env.h

+ 0 - 1
src/tests/includes/dinit-ll.h

@@ -1 +0,0 @@
-../../includes/dinit-ll.h

+ 0 - 1
src/tests/includes/dinit-log.h

@@ -1 +0,0 @@
-../../includes/dinit-log.h

+ 0 - 1
src/tests/includes/dinit-socket.h

@@ -1 +0,0 @@
-../../includes/dinit-socket.h

+ 0 - 1
src/tests/includes/dinit-util.h

@@ -1 +0,0 @@
-../../includes/dinit-util.h

+ 0 - 1
src/tests/includes/dinit-utmp.h

@@ -1 +0,0 @@
-../../includes/dinit-utmp.h

+ 0 - 1
src/tests/includes/dinit.h

@@ -1 +0,0 @@
-../test-includes/dinit.h

+ 0 - 1
src/tests/includes/load-service.h

@@ -1 +0,0 @@
-../../includes/load-service.h

+ 0 - 1
src/tests/includes/options-processing.h

@@ -1 +0,0 @@
-../../includes/options-processing.h

+ 0 - 1
src/tests/includes/proc-service.h

@@ -1 +0,0 @@
-../../includes/proc-service.h

+ 0 - 1
src/tests/includes/service-constants.h

@@ -1 +0,0 @@
-../../includes/service-constants.h

+ 0 - 1
src/tests/includes/service-dir.h

@@ -1 +0,0 @@
-../../includes/service-dir.h

+ 0 - 1
src/tests/includes/service-listener.h

@@ -1 +0,0 @@
-../../includes/service-listener.h

+ 0 - 1
src/tests/includes/service.h

@@ -1 +0,0 @@
-../../includes/service.h

+ 0 - 1
src/tests/includes/static-string.h

@@ -1 +0,0 @@
-../../includes/static-string.h

+ 0 - 14
src/tests/test-includes/control.h

@@ -1,14 +0,0 @@
-// dummy control.h
-
-#include "dinit.h"
-
-class service_set;
-
-class control_conn_t
-{
-    public:
-    control_conn_t(eventloop_t &loop, service_set * services_p, int fd)
-    {
-        // active_control_conns++;
-    }
-};