1
0
mirror of https://github.com/ThrowTheSwitch/Unity.git synced 2026-01-23 00:15:58 +01:00
Files
Unity/rakefile_helper_GCC.rb
2008-11-13 16:22:10 +00:00

86 lines
2.0 KiB
Ruby

#This rakefile sets you up to use GCC as your compiler for tests
module RakefileConstants
C_EXTENSION = '.c'
def Kernel.is_windows?
processor, platform, *rest = RUBY_PLATFORM.split("-")
platform == 'mswin32'
end
if Kernel.is_windows?
OBJ_EXTENSION = '.obj'
BIN_EXTENSION = '.exe'
else
OBJ_EXTENSION = '.o'
BIN_EXTENSION = '.out'
end
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'
BIN_PATH = 'build'
UNITY_TEST_SRC = UNIT_TEST_PATH + '/testunity.c'
UNITY_TEST_RUNNER_SRC = UNIT_TEST_PATH + '/testunity_Runner.c'
UNITY_OBJ = BIN_PATH + '/unity' + OBJ_EXTENSION
UNITY_TEST_OBJ = BIN_PATH + '/testunity' + OBJ_EXTENSION
UNITY_TEST_RUNNER_OBJ = BIN_PATH + '/testunity_Runner' + OBJ_EXTENSION
UNITY_TEST_EXEC = UNITY_TEST_OBJ.ext BIN_EXTENSION
TEST_RESULTS = UNITY_TEST_OBJ.ext '.testpass'
COMPILER = 'gcc'
LINKER = 'gcc'
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