提交 ff03e1c9 编写于 作者: M Mark VanderVoord 提交者: GitHub

Merge pull request #252 from jsalling/feature/compile-examples

Compile examples during continuous integration
build/
test/sandbox
.DS_Store
examples/example_1/test1.exe
examples/example_1/test2.exe
examples/example_2/all_tests.exe
examples/example_1/test1.out
examples/example_1/test2.out
examples/example_2/all_tests.out
examples/example_3/test1.out
examples/example_3/test2.out
test/testparameterized.c.results
test/testunity.c.results
......@@ -11,10 +11,15 @@ matrix:
before_install:
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then rvm install 2.1 && rvm use 2.1 && ruby -v; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install --assume-yes --quiet gcc-multilib; fi
install: gem install rspec
script:
- cd test && rake ci
- make -s
- make -s DEBUG=-m32
- cd ../extras/fixture/test && rake ci
- make -s default noStdlibMalloc
- make -s C89
- cd ../../../examples/example_1 && make -s ci
- cd ../example_2 && make -s ci
- cd ../example_3 && rake
......@@ -5,17 +5,14 @@
# ==========================================
#We try to detect the OS we are running on, and adjust commands as needed
ifeq ($(OSTYPE),cygwin)
CLEANUP = rm -f
MKDIR = mkdir -p
TARGET_EXTENSION=.out
elseifeq ($(OSTYPE),msys)
CLEANUP = rm -f
MKDIR = mkdir -p
TARGET_EXTENSION=.exe
elseifeq ($(OS),Windows_NT)
ifeq ($(OS),Windows_NT)
ifeq ($(shell uname -s),) # not in a bash-like shell
CLEANUP = del /F /Q
MKDIR = mkdir
else # in a bash-like shell, like msys
CLEANUP = rm -f
MKDIR = mkdir -p
endif
TARGET_EXTENSION=.exe
else
CLEANUP = rm -f
......@@ -23,13 +20,16 @@ else
TARGET_EXTENSION=.out
endif
UNITY_ROOT=../..
C_COMPILER=gcc
ifeq ($(shell uname -s), Darwin)
C_COMPILER=clang
endif
UNITY_ROOT=../..
CFLAGS=-std=c89
CFLAGS += -Wall
CFLAGS += -Wextra
CFLAGS += -Werror
CFLAGS += -Wpointer-arith
CFLAGS += -Wcast-align
CFLAGS += -Wwrite-strings
......@@ -49,18 +49,23 @@ TARGET2 = $(TARGET_BASE2)$(TARGET_EXTENSION)
SRC_FILES1=$(UNITY_ROOT)/src/unity.c src/ProductionCode.c test/TestProductionCode.c test/test_runners/TestProductionCode_Runner.c
SRC_FILES2=$(UNITY_ROOT)/src/unity.c src/ProductionCode2.c test/TestProductionCode2.c test/test_runners/TestProductionCode2_Runner.c
INC_DIRS=-Isrc -I$(UNITY_ROOT)/src
SYMBOLS=-DTEST
SYMBOLS=
all: clean default
default:
ruby $(UNITY_ROOT)/auto/generate_test_runner.rb test/TestProductionCode.c test/test_runners/TestProductionCode_Runner.c
ruby $(UNITY_ROOT)/auto/generate_test_runner.rb test/TestProductionCode2.c test/test_runners/TestProductionCode2_Runner.c
default: $(SRC_FILES1) $(SRC_FILES2)
$(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES1) -o $(TARGET1)
$(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES2) -o $(TARGET2)
./$(TARGET1)
- ./$(TARGET1)
./$(TARGET2)
test/test_runners/TestProductionCode_Runner.c: test/TestProductionCode.c
ruby $(UNITY_ROOT)/auto/generate_test_runner.rb test/TestProductionCode.c test/test_runners/TestProductionCode_Runner.c
test/test_runners/TestProductionCode2_Runner.c: test/TestProductionCode2.c
ruby $(UNITY_ROOT)/auto/generate_test_runner.rb test/TestProductionCode2.c test/test_runners/TestProductionCode2_Runner.c
clean:
$(CLEANUP)
$(CLEANUP) $(TARGET1) $(TARGET2)
ci: CFLAGS += -Werror
ci: default
......@@ -11,7 +11,7 @@
setUp(); \
TestFunc(); \
} \
if (TEST_PROTECT() && !TEST_IS_IGNORED) \
if (TEST_PROTECT()) \
{ \
tearDown(); \
} \
......
......@@ -11,7 +11,7 @@
setUp(); \
TestFunc(); \
} \
if (TEST_PROTECT() && !TEST_IS_IGNORED) \
if (TEST_PROTECT()) \
{ \
tearDown(); \
} \
......
......@@ -5,17 +5,14 @@
# ==========================================
#We try to detect the OS we are running on, and adjust commands as needed
ifeq ($(OSTYPE),cygwin)
CLEANUP = rm -f
MKDIR = mkdir -p
TARGET_EXTENSION=.out
elseifeq ($(OSTYPE),msys)
CLEANUP = rm -f
MKDIR = mkdir -p
TARGET_EXTENSION=.exe
elseifeq ($(OS),Windows_NT)
ifeq ($(OS),Windows_NT)
ifeq ($(shell uname -s),) # not in a bash-like shell
CLEANUP = del /F /Q
MKDIR = mkdir
else # in a bash-like shell, like msys
CLEANUP = rm -f
MKDIR = mkdir -p
endif
TARGET_EXTENSION=.exe
else
CLEANUP = rm -f
......@@ -23,13 +20,16 @@ else
TARGET_EXTENSION=.out
endif
UNITY_ROOT=../..
C_COMPILER=gcc
ifeq ($(shell uname -s), Darwin)
C_COMPILER=clang
endif
UNITY_ROOT=../..
CFLAGS = -std=c99
CFLAGS=-std=c99
CFLAGS += -Wall
CFLAGS += -Wextra
CFLAGS += -Werror
CFLAGS += -Wpointer-arith
CFLAGS += -Wcast-align
CFLAGS += -Wwrite-strings
......@@ -41,8 +41,6 @@ CFLAGS += -Wno-unknown-pragmas
CFLAGS += -Wstrict-prototypes
CFLAGS += -Wundef
CFLAGS += -Wold-style-definition
CFLAGS += -Wmissing-prototypes
CFLAGS += -Wmissing-declarations
TARGET_BASE1=all_tests
TARGET1 = $(TARGET_BASE1)$(TARGET_EXTENSION)
......@@ -63,8 +61,10 @@ all: clean default
default:
$(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES1) -o $(TARGET1)
./$(TARGET1) -v
- ./$(TARGET1) -v
clean:
$(CLEANUP)
$(CLEANUP) $(TARGET1)
ci: CFLAGS += -Werror
ci: default
......@@ -251,6 +251,8 @@ module RakefileHelpers
def fail_out(msg)
puts msg
exit(-1)
puts "Not returning exit code so continuous integration can pass"
# exit(-1) # Only removed to pass example_3, which has failing tests on purpose.
# Still fail if the build fails for any other reason.
end
end
......@@ -4,16 +4,10 @@ Example 3
This example project gives an example of some passing, ignored, and failing tests.
It's simple and meant for you to look over and get an idea for what all of this stuff does.
You can build and test using the makefile if you have gcc installed (you may need to tweak
the locations of some tools in the makefile). Otherwise, the rake version will let you
test with gcc or a couple versions of IAR. You can tweak the yaml files to get those versions
running.
You can build and test using rake. The rake version will let you test with gcc or a couple
versions of IAR. You can tweak the yaml files to get those versions running.
Ruby is required if you're using the rake version (obviously). This version shows off most of
Unity's advanced features (automatically creating test runners, fancy summaries, etc.)
The makefile version doesn't require anything outside of your normal build tools, but won't do the
extras for you. So that you can test right away, we've written the test runners for you and
put them in the test\no_ruby subdirectory. If you make changes to the tests or source, you might
need to update these (like when you add or remove tests). Do that for a while and you'll learn
why you really want to start using the Ruby tools.
\ No newline at end of file
Without ruby, you have to maintain your own test runners. Do that for a while and you'll learn
why you really want to start using the Ruby tools.
......@@ -16,13 +16,10 @@ compiler:
- '-Winit-self'
- '-Winline'
- '-Winvalid-pch'
- '-Wmissing-declarations'
- '-Wmissing-include-dirs'
- '-Wmissing-prototypes'
- '-Wnonnull'
- '-Wpacked'
- '-Wpointer-arith'
- '-Wredundant-decls'
- '-Wswitch-default'
- '-Wstrict-aliasing'
- '-Wstrict-overflow=5'
......@@ -33,10 +30,7 @@ compiler:
- '-Wshadow'
- '-Wundef'
- '-Wwrite-strings'
- '-Wno-missing-declarations'
- '-Wno-missing-prototypes'
- '-Wno-nested-externs'
- '-Wno-redundant-decls'
- '-Wno-unused-parameter'
- '-Wno-variadic-macros'
- '-Wbad-function-cast'
......
......@@ -16,13 +16,10 @@ compiler:
- '-Winit-self'
- '-Winline'
- '-Winvalid-pch'
- '-Wmissing-declarations'
- '-Wmissing-include-dirs'
- '-Wmissing-prototypes'
- '-Wnonnull'
- '-Wpacked'
- '-Wpointer-arith'
- '-Wredundant-decls'
- '-Wswitch-default'
- '-Wstrict-aliasing'
- '-Wstrict-overflow=5'
......@@ -33,10 +30,7 @@ compiler:
- '-Wshadow'
- '-Wundef'
- '-Wwrite-strings'
- '-Wno-missing-declarations'
- '-Wno-missing-prototypes'
- '-Wno-nested-externs'
- '-Wno-redundant-decls'
- '-Wno-unused-parameter'
- '-Wno-variadic-macros'
- '-Wbad-function-cast'
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册