mirror of
https://github.com/ThrowTheSwitch/Unity.git
synced 2026-01-23 00:15:58 +01:00
git-svn-id: http://unity.svn.sourceforge.net/svnroot/unity/trunk@5 e7d17a6e-8845-0410-bbbc-c8efb4fdad7e
67 lines
1.4 KiB
Ruby
67 lines
1.4 KiB
Ruby
#This rakefile sets you up to use GCC as your compiler for tests
|
|
module RakefileConstants
|
|
|
|
C_EXTENSION = '.c'
|
|
OBJ_EXTENSION = '.obj'
|
|
BIN_EXTENSION = '.exe'
|
|
|
|
UNIT_TEST_PATH = 'test'
|
|
UNITY_PATH = '../src'
|
|
SOURCE_PATH = 'src'
|
|
BUILD_PATH = 'build'
|
|
|
|
UNITY_SRC = UNITY_PATH + '\unity.c'
|
|
UNITY_HDR = UNITY_PATH + '\unity.h'
|
|
|
|
COMPILER = 'gcc.exe'
|
|
LINKER = 'gcc.exe'
|
|
|
|
end
|
|
|
|
module RakefileHelpers
|
|
include RakefileConstants
|
|
|
|
def flush_output
|
|
$stderr.flush
|
|
$stdout.flush
|
|
end
|
|
|
|
def report message
|
|
puts message
|
|
flush_output
|
|
end
|
|
|
|
def compile src, obj
|
|
execute "#{COMPILER} -c -I#{SOURCE_PATH} -I#{UNITY_PATH} -DTEST #{src} -o#{obj}"
|
|
end
|
|
|
|
def link prerequisites, executable
|
|
execute "#{LINKER} -DTEST #{prerequisites.join(' ')} -o#{executable}"
|
|
end
|
|
|
|
def run_test executable
|
|
execute "\"#{executable}\""
|
|
end
|
|
|
|
def write_result_file filename, results
|
|
if (results.include?("OK\n"))
|
|
output_file = filename.gsub(BIN_EXTENSION, '.testpass')
|
|
else
|
|
output_file = filename.gsub(BIN_EXTENSION, '.testfail')
|
|
end
|
|
File.open(output_file, 'w') do |f|
|
|
f.print results
|
|
end
|
|
end
|
|
|
|
private #####################
|
|
|
|
def execute command_string
|
|
report command_string
|
|
output = `#{command_string}`
|
|
report output
|
|
output
|
|
end
|
|
|
|
end
|