提交 8457dd9a 编写于 作者: G greg-williams

Converted MSP430 config to YAML format. Still need to update Unity to support...

Converted MSP430 config to YAML format. Still need to update Unity to support 16-bit and big-endian to get to work.
Modified Unity to use test suite generator in preparation for updates for 16-bit and big endian changes

git-svn-id: http://unity.svn.sourceforge.net/svnroot/unity/trunk@25 e7d17a6e-8845-0410-bbbc-c8efb4fdad7e
上级 c113a9ca
tools_root: &tools_root 'C:\Program Files\IAR Systems\Embedded Workbench 5.3 Evaluation\'
core_root: &core_root [*tools_root, '430\']
core_bin: &core_bin [*core_root, 'bin\']
core_config: &core_config [*core_root, 'config\']
core_lib: &core_lib [*core_root, 'lib\']
core_inc: &core_inc [*core_root, 'inc\']
core_config: &core_config [*core_root, 'config\']
compiler:
path: [*core_bin, 'icc430.exe']
source_path: 'src\'
unit_tests_path: &unit_tests_path 'test\'
build_path: &build_path 'build\'
options:
- --dlib_config
- [*core_lib, 'dlib\dl430fn.h']
- --no_cse
- --no_unroll
- --no_inline
- --no_code_motion
- --no_tbaa
- --debug
- -D__MSP430F149__
- -DUNITY_FLOAT_SUPPORT_DISABLED
- -e
- -Ol
- --multiplier=16
- --double=32
- --diag_suppress Pa050
- --diag_suppress Pe111
includes:
prefix: '-I'
items:
- *core_inc
- [*core_inc, 'dlib']
- [*core_lib, 'dlib']
- 'src\'
- *unit_tests_path
- 'vendor\unity\src'
defines:
prefix: '-D'
items:
object_files:
prefix: '-o'
extension: '.r43'
destination: *build_path
linker:
path: [*core_bin, 'xlink.exe']
options:
- -rt
- [*core_lib, 'dlib\dl430fn.r43']
- -e_PrintfTiny=_Printf
- -e_ScanfSmall=_Scanf
- -s __program_start
- -D_STACK_SIZE=50
- -D_DATA16_HEAP_SIZE=50
- -D_DATA20_HEAP_SIZE=50
- -f
- [*core_config, 'lnk430f5438.xcl']
- -f
- [*core_config, 'multiplier.xcl']
includes:
prefix: '-I'
items:
- *core_config
- *core_lib
- [*core_lib, 'dlib']
object_files:
path: *build_path
extension: '.r79'
bin_files:
prefix: '-o'
extension: '.d79'
destination: *build_path
simulator:
path: [*tools_root, 'common\bin\CSpyBat.exe']
pre_support:
- --silent
- [*core_bin, '430proc.dll']
- [*core_bin, '430sim.dll']
post_support:
- --plugin
- [*core_bin, '430bat.dll']
- --backend -B
- --cpu MSP430F5438
- -p
- [*core_config, 'MSP430F5438.ddf']
- -d sim
\ No newline at end of file
......@@ -165,7 +165,7 @@ module RakefileHelpers
def run_tests(test_files)
report 'Running system tests...'
report 'Running Unity system tests...'
# Tack on TEST define for compiling unit tests
load_configuration($cfg_file)
......@@ -194,6 +194,7 @@ module RakefileHelpers
runner_name = test_base + '_Runner.c'
if $cfg['compiler']['runner_path'].nil?
require 'auto/generate_test_runner'
runner_path = $cfg['compiler']['build_path'] + runner_name
test_gen = UnityTestRunnerGenerator.new
test_gen.run(test, runner_path)
......
#This rakefile sets you up to use IAR System's C Compiler and Simulator for your tests.
module RakefileConstants
PROGRAM_FILES_PATH = ENV['ProgramFiles']
IAR_ROOT_PATHS = [
PROGRAM_FILES_PATH + '\IAR Systems\Embedded Workbench 5.0',
PROGRAM_FILES_PATH + '\IAR Systems\Embedded Workbench 5.0 Kickstart',
PROGRAM_FILES_PATH + '\IAR Systems\Embedded Workbench MSP430'
]
IAR_PROC_FOLDER = '\430'
IAR_ROOT_PATHS.each do |path|
if File.exist?(path + IAR_PROC_FOLDER)
IAR_ROOT = path
break
end
end
exit(-1) if IAR_ROOT.nil?
C_EXTENSION = '.c'
OBJ_EXTENSION = '.r43'
BIN_EXTENSION = '.d43'
UNIT_TEST_PATH = 'test'
UNITY_PATH = 'src'
SOURCE_PATH = 'src'
BUILD_PATH = 'build'
BIN_PATH = 'build'
IAR_PATH = IAR_ROOT + '\common'
IAR_BIN = IAR_PATH + '\bin'
IAR_CORE_PATH = IAR_ROOT + '\430'
IAR_CORE_BIN = IAR_CORE_PATH + '\bin'
IAR_CORE_CONFIG = IAR_CORE_PATH + '\config'
IAR_CORE_INCLUDE = IAR_CORE_PATH + '\inc'
IAR_CORE_INCLUDE_DLIB = IAR_CORE_INCLUDE + '\dlib'
IAR_CORE_LIB = IAR_CORE_PATH + '\lib'
IAR_CORE_DLIB = IAR_CORE_LIB + '\dlib\dl430fn.r43'
IAR_CORE_DLIB_CONFIG = IAR_CORE_LIB + '\dlib\dl430fn.h'
SIMULATOR_PROCESSOR = IAR_CORE_BIN + '\430proc.dll'
SIMULATOR_DRIVER = IAR_CORE_BIN + '\430sim.dll'
SIMULATOR_PLUGIN = IAR_CORE_BIN + '\430bat.dll'
SIMULATOR_BACKEND_DDF = IAR_CORE_CONFIG + '\MSP430F5438.ddf'
PROCESSOR_TYPE = 'MSP430F5438'
LINKER_CONFIG = IAR_CORE_CONFIG + '\lnk430f5438.xcl'
LINKER_CONFIG_MULT = IAR_CORE_CONFIG + '\multiplier.xcl'
UNITY_SRC = UNITY_PATH + '\unity.c'
UNITY_HDR = UNITY_PATH + '\unity.h'
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 = IAR_CORE_BIN + '\icc430.exe'
LINKER = IAR_CORE_BIN + '\xlink.exe'
SIMULATOR = IAR_BIN + '\CSpyBat.exe'
end
module RakefileHelpers
include RakefileConstants
def flush_output
$stderr.flush
$stdout.flush
end
def report message
puts message
flush_output
end
#####################################
# IAR Compiler Command-Line
#####################################
# icc430.exe
# --no_cse
# --no_unroll
# --no_inline
# --no_code_motion
# --no_tbaa
# --debug
# -D__MSP430F149__
# -DUNITY_FLOAT_SUPPORT_DISABLED
# -e
# -Ol
# --multiplier=16
# --double=32
# --diag_suppress Pa050
# --diag_suppress Pe111
# --dlib_config C:\Program Files\IAR Systems\Embedded Workbench MSP430\430\LIB\dl430fn.h
# -I C:\Program Files\IAR Systems\Embedded Workbench MSP430\430\INC\
# -I C:\Program Files\IAR Systems\Embedded Workbench MSP430\430\INC\DLIB\
# C:\Documents and Settings\Greg\Desktop\MSP430\main.c
# -o C:\Documents and Settings\Greg\Desktop\MSP430\Debug\Obj\
#####################################
def compile(src, obj)
execute "#{COMPILER} --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa --debug -D__MSP430F149__ -DUNITY_FLOAT_SUPPORT_DISABLED -e -Ol --multiplier=16 --double=32 --diag_suppress Pa050 --diag_suppress Pe111 --dlib_config \"#{IAR_CORE_DLIB_CONFIG}\" -I\"#{IAR_CORE_INCLUDE}\" -I\"#{IAR_CORE_INCLUDE_DLIB}\" -I\"#{UNITY_PATH}\" -Isrc -Itest #{src} -o#{obj}"
end
#####################################
# IAR Linker Command-Line
#####################################
# xlink.exe
# -IC:\Program Files\IAR Systems\Embedded Workbench MSP430\430\LIB\
# -rt
# C:\Program Files\IAR Systems\Embedded Workbench MSP430\430\LIB\DLIB\dl430fn.r43
# -e_PrintfTiny=_Printf
# -e_ScanfSmall=_Scanf
# -s __program_start
# -D_STACK_SIZE=50
# -D_DATA16_HEAP_SIZE=50
# -D_DATA20_HEAP_SIZE=50
# -f C:\Program Files\IAR Systems\Embedded Workbench MSP430\430\config\lnk430F149.xcl
# -f C:\Program Files\IAR Systems\Embedded Workbench MSP430\430\config\multiplier.xcl
# C:\Documents and Settings\Greg\Desktop\MSP430\Debug\Obj\main.r43
# -o C:\Documents and Settings\Greg\Desktop\MSP430\Debug\Exe\MSP430Test.d43
#####################################
def link(prerequisites, executable)
execute "\"#{LINKER}\" -rt \"#{IAR_CORE_DLIB}\" -e_PrintfTiny=_Printf -e_ScanfSmall=_Scanf -s __program_start -D_STACK_SIZE=50 -D_DATA16_HEAP_SIZE=50 -D_DATA20_HEAP_SIZE=50 -I\"#{IAR_CORE_LIB}\" -f \"#{LINKER_CONFIG}\" -f \"#{LINKER_CONFIG_MULT}\" #{prerequisites.join(' ')} -o #{executable}"
end
def run_test(executable)
execute "\"#{SIMULATOR}\" --silent \"#{SIMULATOR_PROCESSOR}\" \"#{SIMULATOR_DRIVER}\" #{executable} --plugin \"#{SIMULATOR_PLUGIN}\" --backend -B --cpu #{PROCESSOR_TYPE} -p \"#{SIMULATOR_BACKEND_DDF}\" -d sim"
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
if $?.exitstatus != 0
raise "Command failed. (Returned #{$?.exitstatus})"
end
return output
end
end
#define UNITY_ENABLE_EXTERNAL_ASSERTIONS
#include <setjmp.h>
#include "unity.h"
void setUp(void);
void tearDown(void);
void testTrue(void);
void testFalse(void);
void testPreviousPass(void);
void testNotVanilla(void);
void testNotTrue(void);
void testNotFalse(void);
void testNotUnless(void);
void testFail(void);
void testIgnore(void);
void testIgnoreMessage(void);
void testNotEqualInts(void);
void testNotEqualBits(void);
void testNotEqualUInts(void);
void testNotEqualHex8s(void);
void testNotEqualHex16s(void);
void testNotEqualHex32s(void);
void testEqualInts(void);
void testEqualUints(void);
void testEqualHex8s(void);
void testEqualHex16s(void);
void testEqualHex32s(void);
void testEqualBits(void);
void testEqualShorts(void);
void testEqualUShorts(void);
void testEqualChars(void);
void testEqualUChars(void);
void testEqualPointers(void);
void testFloatsWithinDelta(void);
void testFloatsNotWithinDelta(void);
void testIntsWithinDelta(void);
void testIntsNotWithinDelta(void);
void testEqualStrings(void);
void testNotEqualString1(void);
void testNotEqualString2(void);
void testNotEqualString3(void);
void testNotEqualString_ExpectedStringIsNull(void);
void testNotEqualString_ActualStringIsNull(void);
void testProtection(void);
static void runTest(UnityTestFunction test)
{
if (TEST_PROTECT())
{
setUp();
test();
}
if (TEST_PROTECT())
{
tearDown();
}
}
int main(void)
{
Unity.TestFile = __FILE__;
UnityBegin();
// RUN_TEST calls runTest
RUN_TEST(testTrue);
RUN_TEST(testFalse);
RUN_TEST(testPreviousPass);
RUN_TEST(testNotVanilla);
RUN_TEST(testNotTrue);
RUN_TEST(testNotFalse);
RUN_TEST(testNotUnless);
RUN_TEST(testFail);
RUN_TEST(testIgnore);
RUN_TEST(testIgnoreMessage);
RUN_TEST(testNotEqualBits);
RUN_TEST(testNotEqualInts);
RUN_TEST(testNotEqualUInts);
RUN_TEST(testNotEqualHex8s);
RUN_TEST(testNotEqualHex16s);
RUN_TEST(testNotEqualHex32s);
RUN_TEST(testEqualBits);
RUN_TEST(testEqualInts);
RUN_TEST(testEqualUints);
RUN_TEST(testEqualHex8s);
RUN_TEST(testEqualHex16s);
RUN_TEST(testEqualHex32s);
RUN_TEST(testEqualShorts);
RUN_TEST(testEqualUShorts);
RUN_TEST(testEqualChars);
RUN_TEST(testEqualUChars);
RUN_TEST(testEqualPointers);
RUN_TEST(testEqualStrings);
RUN_TEST(testIntsWithinDelta);
RUN_TEST(testIntsNotWithinDelta);
RUN_TEST(testFloatsWithinDelta);
RUN_TEST(testFloatsNotWithinDelta);
RUN_TEST(testNotEqualString1);
RUN_TEST(testNotEqualString2);
RUN_TEST(testNotEqualString3);
RUN_TEST(testNotEqualString_ExpectedStringIsNull);
RUN_TEST(testNotEqualString_ActualStringIsNull);
RUN_TEST(testProtection);
UnityEnd();
return 0;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册