Test multiple C++ standards; move tests to top level
This commit is contained in:
parent
403db54664
commit
011460254d
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
/test/build/
|
/build/
|
||||||
|
|||||||
24
Makefile
24
Makefile
@ -1,7 +1,23 @@
|
|||||||
.PHONY: test
|
# This Makefile is entirely for running unit tests for rcp.h
|
||||||
test:
|
|
||||||
$(MAKE) -C test
|
INCLUDE := include
|
||||||
|
STANDARDS := 11 14 17 20 23
|
||||||
|
BINARIES := $(addprefix build/tests-, $(STANDARDS))
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
all: $(BINARIES)
|
||||||
|
@for std in $(STANDARDS); do \
|
||||||
|
echo "=== Test C++$$std ==="; \
|
||||||
|
build/tests-$$std; \
|
||||||
|
valgrind --leak-check=full --error-exitcode=1 \
|
||||||
|
--log-file=build/valgrind-$$std.log build/tests-$$std \
|
||||||
|
|| { echo "valgrind failed for C++$$std (see build/valgrind-$$std.log)"; exit 1; }; \
|
||||||
|
done
|
||||||
|
|
||||||
|
build/tests-%: tests.cpp $(INCLUDE)/rcp.h
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
$(CXX) -std=c++$* -g -Wall -I$(INCLUDE) -o $@ $<
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -C test clean
|
rm -rf build
|
||||||
|
|||||||
@ -1,14 +0,0 @@
|
|||||||
INCLUDE := ../include
|
|
||||||
|
|
||||||
.PHONY: all
|
|
||||||
all: build/tests
|
|
||||||
build/tests
|
|
||||||
valgrind --leak-check=full --error-exitcode=1 --log-file=build/valgrind.log build/tests
|
|
||||||
|
|
||||||
build/tests: tests.cpp $(INCLUDE)/rcp.h
|
|
||||||
mkdir -p $$(dirname $@)
|
|
||||||
$(CXX) -std=c++20 -g -Wall -I$(INCLUDE) -o $@ $<
|
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
clean:
|
|
||||||
rm -rf build
|
|
||||||
@ -114,11 +114,11 @@ void test_multi_construct_from_raw_pointers()
|
|||||||
{
|
{
|
||||||
Receiver r;
|
Receiver r;
|
||||||
auto myo = MyObj::create();
|
auto myo = MyObj::create();
|
||||||
for (size_t i = 0u; i < 5u; i++)
|
for (int i = 0; i < 5; i++)
|
||||||
{
|
{
|
||||||
myo->add_to(r);
|
myo->add_to(r);
|
||||||
}
|
}
|
||||||
for (size_t i = 0u; i < 5u; i++)
|
for (int i = 0; i < 5; i++)
|
||||||
{
|
{
|
||||||
assert(r.objects[i]->v == 42);
|
assert(r.objects[i]->v == 42);
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user