diff options
author | Robin Burchell <robin+git@viroteck.net> | 2019-07-21 16:12:24 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-07-21 18:48:44 +0200 |
commit | a3213659dd1c4210ceb7937fcc037b459d445d17 (patch) | |
tree | 24a35063fbe4854c6d0465ecfe8ae0e60d9c94c2 | |
parent | 3b588b7dc051b2be69631d5da9948f8f7419b3da (diff) | |
download | serenity-a3213659dd1c4210ceb7937fcc037b459d445d17.zip |
AK: Run host tests on make
Restructure the makefile a little so it only builds objects once, and
then run them on make clean.
This is a little slower (since we're relinking tests each makeall), but
it also ensures that it will work.
-rw-r--r-- | AK/Tests/Makefile | 49 | ||||
-rwxr-xr-x | Kernel/makeall.sh | 2 |
2 files changed, 37 insertions, 14 deletions
diff --git a/AK/Tests/Makefile b/AK/Tests/Makefile index a9d2deb49b..3847c4834e 100644 --- a/AK/Tests/Makefile +++ b/AK/Tests/Makefile @@ -1,26 +1,47 @@ PROGRAMS = TestString TestQueue TestVector TestHashMap TestJSON TestWeakPtr -all: $(PROGRAMS) +CXXFLAGS = -std=c++17 -Wall -Wextra -ggdb3 -O2 -I../ -I../../ + +SHARED_TEST_OBJS = \ + ../String.o \ + ../StringImpl.o \ + ../StringBuilder.o \ + ../StringView.o \ + ../LogStream.o \ + ../JsonArray.o \ + ../JsonObject.o \ + ../JsonValue.o \ + ../JsonParser.o \ -CXXFLAGS = -std=c++17 -Wall -Wextra -ggdb3 -O2 +.cpp.o: + @echo "HOST_CXX $<"; $(PRE_CXX) $(CXX) $(CXXFLAGS) -o $@ -c $< -TestString: TestString.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../TestSuite.h ../LogStream.cpp - $(CXX) $(CXXFLAGS) -I../ -I../../ -o $@ TestString.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../LogStream.cpp +define execute-command +$(1) -TestQueue: TestQueue.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../TestSuite.h ../LogStream.cpp - $(CXX) $(CXXFLAGS) -I../ -I../../ -o $@ TestQueue.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../LogStream.cpp +endef + +all: $(PROGRAMS) + $(foreach x,$(PROGRAMS),$(call execute-command,./$(x))) -TestVector: TestVector.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../TestSuite.h ../LogStream.cpp - $(CXX) $(CXXFLAGS) -I../ -I../../ -o $@ TestVector.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../LogStream.cpp +TestString: TestString.o $(SHARED_TEST_OBJS) + $(PRE_CXX) $(CXX) $(CXXFLAGS) -o $@ TestString.o $(SHARED_TEST_OBJS) -TestHashMap: TestHashMap.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../TestSuite.h ../LogStream.cpp - $(CXX) $(CXXFLAGS) -I../ -I../../ -o $@ TestHashMap.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../LogStream.cpp +TestQueue: TestQueue.o $(SHARED_TEST_OBJS) + $(PRE_CXX) $(CXX) $(CXXFLAGS) -o $@ TestQueue.o $(SHARED_TEST_OBJS) -TestJSON: TestJSON.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../TestSuite.h ../LogStream.cpp ../JsonObject.cpp ../JsonValue.cpp ../JsonArray.cpp ../JsonParser.cpp - $(CXX) $(CXXFLAGS) -I../ -I../../ -o $@ TestJSON.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../LogStream.cpp ../JsonObject.cpp ../JsonValue.cpp ../JsonArray.cpp ../JsonParser.cpp +TestVector: TestVector.o $(SHARED_TEST_OBJS) + $(PRE_CXX) $(CXX) $(CXXFLAGS) -o $@ TestVector.o $(SHARED_TEST_OBJS) +# +TestHashMap: TestHashMap.o $(SHARED_TEST_OBJS) + $(PRE_CXX) $(CXX) $(CXXFLAGS) -o $@ TestHashMap.o $(SHARED_TEST_OBJS) +# +TestJSON: TestJSON.o $(SHARED_TEST_OBJS) + $(PRE_CXX) $(CXX) $(CXXFLAGS) -o $@ TestJSON.o $(SHARED_TEST_OBJS) -TestWeakPtr: TestWeakPtr.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../TestSuite.h ../LogStream.cpp ../WeakPtr.h ../Weakable.h - $(CXX) $(CXXFLAGS) -I../ -I../../ -o $@ TestWeakPtr.cpp ../String.cpp ../StringImpl.cpp ../StringBuilder.cpp ../StringView.cpp ../LogStream.cpp +TestWeakPtr: TestWeakPtr.o $(SHARED_TEST_OBJS) + $(PRE_CXX) $(CXX) $(CXXFLAGS) -o $@ TestWeakPtr.o $(SHARED_TEST_OBJS) clean: + rm -f $(SHARED_TEST_OBJS) rm -f $(PROGRAMS) diff --git a/Kernel/makeall.sh b/Kernel/makeall.sh index a4e88a02c6..ea041c6833 100755 --- a/Kernel/makeall.sh +++ b/Kernel/makeall.sh @@ -66,6 +66,8 @@ done # has no need to build separately, but install headers. (cd ../AK && ./install.sh) +(cd ../AK/Tests && $make_cmd clean) +(cd ../AK/Tests && $make_cmd) sudo -E ./build-image-qemu.sh |