From: Damir Tomic Date: Wed, 22 Jul 2015 18:09:39 +0000 (+0200) Subject: Updated unity ruby testRunner generator with mark's latest fixes. Modified tests... X-Git-Tag: NTP_4_3_64~4^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d86f85a8a79cf4131bc378274ab698c8af9949c4;p=thirdparty%2Fntp.git Updated unity ruby testRunner generator with mark's latest fixes. Modified tests/libntp/Makefile.am and sntp/tests/Makefile.am accordingly. Also, split some .h files into .h and .c because they contained declarations and definitions which caused error in the newly generated test runners. Started fixing some warnings. We can add both declarations and defitions in a single test.c file without any issues now. Autogenerated tests will be run in order of the declarations in the test file. bk: 55afdc636TZKp95qd7IKAckR1RiaHQ --- diff --git a/sntp/tests/Makefile.am b/sntp/tests/Makefile.am index 8cef4f47a..f28f5da78 100644 --- a/sntp/tests/Makefile.am +++ b/sntp/tests/Makefile.am @@ -140,6 +140,7 @@ test_kodDatabase_SOURCES = \ test_keyFile_SOURCES = \ keyFile.c \ run-keyFile.c \ + fileHandlingTest.c \ $(top_builddir)/version.c \ $(NULL) @@ -147,16 +148,19 @@ test_kodFile_SOURCES = \ kodFile.c \ run-kodFile.c \ $(top_builddir)/version.c \ + fileHandlingTest.c \ $(NULL) test_packetProcessing_SOURCES = \ packetProcessing.c \ run-packetProcessing.c \ + sntptest.c \ $(NULL) test_utilities_SOURCES = \ utilities.c \ run-utilities.c \ + fileHandlingTest.c \ $(NULL) test_crypto_SOURCES = \ diff --git a/sntp/tests/crypto.c b/sntp/tests/crypto.c index 7781b81b8..d679fdec7 100644 --- a/sntp/tests/crypto.c +++ b/sntp/tests/crypto.c @@ -9,6 +9,8 @@ #define SHA1_LENGTH 20 +void test_MakeMd5Mac(void); + void test_MakeMd5Mac(void) { diff --git a/sntp/tests/fileHandlingTest.c b/sntp/tests/fileHandlingTest.c new file mode 100644 index 000000000..a328f4722 --- /dev/null +++ b/sntp/tests/fileHandlingTest.c @@ -0,0 +1,74 @@ + +#include "config.h" +#include "stdlib.h" +#include "sntptest.h" + +#include "fileHandlingTest.h" //required because of the h.in thingy + +#include +#include + +/* +enum DirectoryType { + INPUT_DIR = 0, + OUTPUT_DIR = 1 +}; +*/ +//extern const char srcdir[]; + +const char * +CreatePath(const char* filename, enum DirectoryType argument) { + const char srcdir[] = SRCDIR_DEF;//"@abs_srcdir@/data/"; + char * path = malloc (sizeof (char) * (strlen(srcdir) + 256)); + + char cwd[1024]; + + strcpy(path, srcdir); + strcat(path, filename); + + return path; +} + + +int +GetFileSize(FILE *file) { + fseek(file, 0L, SEEK_END); + int length = ftell(file); + fseek(file, 0L, SEEK_SET); + + return length; +} + + +bool +CompareFileContent(FILE* expected, FILE* actual) { + int currentLine = 1; + + char actualLine[1024]; + char expectedLine[1024]; + size_t lenAct = sizeof actualLine; + size_t lenExp = sizeof expectedLine; + + while ( ( (fgets(actualLine, lenAct, actual)) != NULL) + && ( (fgets(expectedLine, lenExp, expected)) != NULL ) + ) { + + + if( strcmp(actualLine,expectedLine) !=0 ){ + printf("Comparision failed on line %d",currentLine); + return FALSE; + } + + currentLine++; + } + + return TRUE; +} + + +void +ClearFile(const char * filename) { + if (!truncate(filename, 0)) + exit(1); +} + diff --git a/sntp/tests/fileHandlingTest.h.in b/sntp/tests/fileHandlingTest.h.in index 5e37c326e..e7d99ee40 100644 --- a/sntp/tests/fileHandlingTest.h.in +++ b/sntp/tests/fileHandlingTest.h.in @@ -1,6 +1,7 @@ #ifndef FILE_HANDLING_TEST_H #define FILE_HANDLING_TEST_H +#include "config.h" #include "stdlib.h" #include "sntptest.h" @@ -13,62 +14,22 @@ enum DirectoryType { OUTPUT_DIR = 1 }; +#define SRCDIR_DEF "@abs_srcdir@/data/"; +//const char srcdir[] = "@abs_srcdir@/data/"; const char * -CreatePath(const char* filename, enum DirectoryType argument) { - const char srcdir[] = "@abs_srcdir@/data/"; - char * path = malloc (sizeof (char) * (strlen(srcdir) + 256)); - - char cwd[1024]; - - strcpy(path, srcdir); - strcat(path, filename); - - return path; -} +CreatePath(const char* filename, enum DirectoryType argument); int -GetFileSize(FILE *file) { - fseek(file, 0L, SEEK_END); - int length = ftell(file); - fseek(file, 0L, SEEK_SET); - - return length; -} +GetFileSize(FILE *file); bool -CompareFileContent(FILE* expected, FILE* actual) { - int currentLine = 1; - - char actualLine[1024]; - char expectedLine[1024]; - size_t lenAct = sizeof actualLine; - size_t lenExp = sizeof expectedLine; - - while ( ( (fgets(actualLine, lenAct, actual)) != NULL) - && ( (fgets(expectedLine, lenExp, expected)) != NULL ) - ) { - - - if( strcmp(actualLine,expectedLine) !=0 ){ - printf("Comparision failed on line %d",currentLine); - return FALSE; - } - - currentLine++; - } - - return TRUE; -} - +CompareFileContent(FILE* expected, FILE* actual); void -ClearFile(const char * filename) { - if (!truncate(filename, 0)) - exit(1); -} +ClearFile(const char * filename) ; #endif // FILE_HANDLING_TEST_H diff --git a/sntp/tests/keyFile.c b/sntp/tests/keyFile.c index d7b290ec6..f4d639f1d 100644 --- a/sntp/tests/keyFile.c +++ b/sntp/tests/keyFile.c @@ -7,6 +7,10 @@ #include "unity.h" +bool CompareKeys(struct key expected, struct key actual); +bool CompareKeysAlternative(int key_id,int key_len,const char* type,const char* key_seq,struct key actual); +void test_ReadEmptyKeyFile(void); + bool CompareKeys(struct key expected, struct key actual) { diff --git a/sntp/tests/run-crypto.c b/sntp/tests/run-crypto.c index ed9114bc8..603c6d5d8 100644 --- a/sntp/tests/run-crypto.c +++ b/sntp/tests/run-crypto.c @@ -22,11 +22,14 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_types.h" +#include "sntptest.h" +#include "crypto.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_MakeMd5Mac(void); extern void test_MakeSHA1Mac(void); extern void test_VerifyCorrectMD5(void); @@ -36,7 +39,8 @@ extern void test_PacketSizeNotMultipleOfFourBytes(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -49,14 +53,13 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "crypto.c"; UnityBegin("crypto.c"); - RUN_TEST(test_MakeMd5Mac, 13); - RUN_TEST(test_MakeSHA1Mac, 36); - RUN_TEST(test_VerifyCorrectMD5, 63); - RUN_TEST(test_VerifySHA1, 83); - RUN_TEST(test_VerifyFailure, 106); - RUN_TEST(test_PacketSizeNotMultipleOfFourBytes, 128); + RUN_TEST(test_MakeMd5Mac, 12); + RUN_TEST(test_MakeSHA1Mac, 38); + RUN_TEST(test_VerifyCorrectMD5, 65); + RUN_TEST(test_VerifySHA1, 85); + RUN_TEST(test_VerifyFailure, 108); + RUN_TEST(test_PacketSizeNotMultipleOfFourBytes, 130); return (UnityEnd()); } diff --git a/sntp/tests/run-keyFile.c b/sntp/tests/run-keyFile.c index f908d5930..e08b614ed 100644 --- a/sntp/tests/run-keyFile.c +++ b/sntp/tests/run-keyFile.c @@ -22,11 +22,15 @@ #include "unity.h" #include #include +#include "config.h" +#include "fileHandlingTest.h" +#include "ntp_stdlib.h" +#include "ntp_types.h" +#include "crypto.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_ReadEmptyKeyFile(void); extern void test_ReadASCIIKeys(void); extern void test_ReadHexKeys(void); @@ -35,7 +39,8 @@ extern void test_ReadKeyFileWithInvalidHex(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -48,13 +53,12 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "keyFile.c"; UnityBegin("keyFile.c"); - RUN_TEST(test_ReadEmptyKeyFile, 55); - RUN_TEST(test_ReadASCIIKeys, 64); - RUN_TEST(test_ReadHexKeys, 84); - RUN_TEST(test_ReadKeyFileWithComments, 112); - RUN_TEST(test_ReadKeyFileWithInvalidHex, 133); + RUN_TEST(test_ReadEmptyKeyFile, 12); + RUN_TEST(test_ReadASCIIKeys, 68); + RUN_TEST(test_ReadHexKeys, 88); + RUN_TEST(test_ReadKeyFileWithComments, 116); + RUN_TEST(test_ReadKeyFileWithInvalidHex, 137); return (UnityEnd()); } diff --git a/sntp/tests/run-kodDatabase.c b/sntp/tests/run-kodDatabase.c index faa32f74c..b10a56d25 100644 --- a/sntp/tests/run-kodDatabase.c +++ b/sntp/tests/run-kodDatabase.c @@ -22,11 +22,17 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_types.h" +#include "sntptest.h" +#include "ntp_stdlib.h" +#include "sntp-opts.h" +#include "kod_management.h" +#include "ntp_io.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_SingleEntryHandling(void); extern void test_MultipleEntryHandling(void); extern void test_NoMatchInSearch(void); @@ -35,7 +41,8 @@ extern void test_DeleteEntry(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -48,7 +55,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "kodDatabase.c"; UnityBegin("kodDatabase.c"); RUN_TEST(test_SingleEntryHandling, 21); RUN_TEST(test_MultipleEntryHandling, 36); diff --git a/sntp/tests/run-kodFile.c b/sntp/tests/run-kodFile.c index da4835a44..0f29096a0 100644 --- a/sntp/tests/run-kodFile.c +++ b/sntp/tests/run-kodFile.c @@ -22,11 +22,15 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_types.h" +#include "ntp_stdlib.h" +#include "fileHandlingTest.h" +#include "kod_management.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_ReadEmptyFile(void); extern void test_ReadCorrectFile(void); extern void test_ReadFileWithBlankLines(void); @@ -36,7 +40,8 @@ extern void test_WriteFileWithMultipleEntries(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -49,7 +54,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "kodFile.c"; UnityBegin("kodFile.c"); RUN_TEST(test_ReadEmptyFile, 27); RUN_TEST(test_ReadCorrectFile, 35); diff --git a/sntp/tests/run-networking.c b/sntp/tests/run-networking.c index d5e822c71..ae21349af 100644 --- a/sntp/tests/run-networking.c +++ b/sntp/tests/run-networking.c @@ -22,6 +22,9 @@ #include "unity.h" #include #include +#include "config.h" +#include "sntptest.h" +#include "networking.h" //=======External Functions This Runner Calls===== extern void setUp(void); @@ -29,7 +32,8 @@ extern void tearDown(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -42,7 +46,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "networking.c"; UnityBegin("networking.c"); return (UnityEnd()); diff --git a/sntp/tests/run-packetHandling.c b/sntp/tests/run-packetHandling.c index e8ae331af..f2086e209 100644 --- a/sntp/tests/run-packetHandling.c +++ b/sntp/tests/run-packetHandling.c @@ -22,11 +22,19 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_debug.h" +#include "ntp_stdlib.h" +#include "ntp_types.h" +#include "sntptest.h" +#include "kod_management.h" +#include "main.h" +#include "networking.h" +#include "ntp.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_GenerateUnauthenticatedPacket(void); extern void test_GenerateAuthenticatedPacket(void); extern void test_OffsetCalculationPositiveOffset(void); @@ -40,7 +48,8 @@ extern void test_HandleCorrectPacket(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -53,7 +62,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "packetHandling.c"; UnityBegin("packetHandling.c"); RUN_TEST(test_GenerateUnauthenticatedPacket, 32); RUN_TEST(test_GenerateAuthenticatedPacket, 57); diff --git a/sntp/tests/run-packetProcessing.c b/sntp/tests/run-packetProcessing.c index c8fcd21ae..041d16fcc 100644 --- a/sntp/tests/run-packetProcessing.c +++ b/sntp/tests/run-packetProcessing.c @@ -22,11 +22,14 @@ #include "unity.h" #include #include +#include "config.h" +#include "sntptest.h" +#include "networking.h" +#include "ntp_stdlib.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_TooShortLength(void); extern void test_LengthNotMultipleOfFour(void); extern void test_TooShortExtensionFieldLength(void); @@ -48,7 +51,8 @@ extern void test_CorrectAuthenticatedPacketSHA1(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -61,7 +65,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "packetProcessing.c"; UnityBegin("packetProcessing.c"); RUN_TEST(test_TooShortLength, 91); RUN_TEST(test_LengthNotMultipleOfFour, 102); diff --git a/sntp/tests/run-utilities.c b/sntp/tests/run-utilities.c index 89cb96493..e196c8a92 100644 --- a/sntp/tests/run-utilities.c +++ b/sntp/tests/run-utilities.c @@ -22,11 +22,16 @@ #include "unity.h" #include #include +#include "config.h" +#include "sntptest.h" +#include "fileHandlingTest.h" +#include "main.h" +#include "utilities.h" +#include //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_IPv4Address(void); extern void test_IPv6Address(void); extern void test_SetLiVnMode1(void); @@ -37,7 +42,8 @@ extern void test_LfpOutputDecimalFormat(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -50,7 +56,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "utilities.c"; UnityBegin("utilities.c"); RUN_TEST(test_IPv4Address, 74); RUN_TEST(test_IPv6Address, 86); diff --git a/sntp/tests/sntptest.c b/sntp/tests/sntptest.c new file mode 100644 index 000000000..73c1ad26f --- /dev/null +++ b/sntp/tests/sntptest.c @@ -0,0 +1,33 @@ + +#include "config.h" +#include "ntp_stdlib.h" +#include "sntp-opts.h" +#include "sntptest.h" + +void +sntptest(void) { + optionSaveState(&sntpOptions); +} + + +void +sntptest_destroy(void) { + optionRestore(&sntpOptions); +} + + +void +ActivateOption(const char* option, const char* argument) { + + const int ARGV_SIZE = 4; + + char* opts[ARGV_SIZE]; + + opts[0] = estrdup("sntpopts"); + opts[1] = estrdup(option); + opts[2] = estrdup(argument); + opts[3] = estrdup("127.0.0.1"); + + optionProcess(&sntpOptions, ARGV_SIZE, opts); +} + diff --git a/sntp/tests/sntptest.h b/sntp/tests/sntptest.h index 2559d2cf6..82e2562dd 100644 --- a/sntp/tests/sntptest.h +++ b/sntp/tests/sntptest.h @@ -8,33 +8,4 @@ void sntptest(void); void sntptest_destroy(void); void ActivateOption(const char* option, const char* argument); - -void -sntptest(void) { - optionSaveState(&sntpOptions); -} - - -void -sntptest_destroy(void) { - optionRestore(&sntpOptions); -} - - -void -ActivateOption(const char* option, const char* argument) { - - const int ARGV_SIZE = 4; - - char* opts[ARGV_SIZE]; - - opts[0] = estrdup("sntpopts"); - opts[1] = estrdup(option); - opts[2] = estrdup(argument); - opts[3] = estrdup("127.0.0.1"); - - optionProcess(&sntpOptions, ARGV_SIZE, opts); -} - - #endif // SNTPTEST_H diff --git a/sntp/unity/auto/generate_test_runner.rb b/sntp/unity/auto/generate_test_runner.rb index c115fadcc..90096c2fb 100644 --- a/sntp/unity/auto/generate_test_runner.rb +++ b/sntp/unity/auto/generate_test_runner.rb @@ -2,28 +2,44 @@ # Unity Project - A Test Framework for C # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams # [Released under MIT License. Please refer to license.txt for details] -# ========================================== +# ========================================== +$QUICK_RUBY_VERSION = RUBY_VERSION.split('.').inject(0){|vv,v| vv * 100 + v.to_i } File.expand_path(File.join(File.dirname(__FILE__),'colour_prompt')) class UnityTestRunnerGenerator def initialize(options = nil) - @options = { :includes => [], :plugins => [], :framework => :unity } + @options = UnityTestRunnerGenerator.default_options + case(options) when NilClass then @options when String then @options.merge!(UnityTestRunnerGenerator.grab_config(options)) when Hash then @options.merge!(options) else raise "If you specify arguments, it should be a filename or a hash of options" end + require "#{File.expand_path(File.dirname(__FILE__))}/type_sanitizer" + end + + def self.default_options + { + :includes => [], + :plugins => [], + :framework => :unity, + :test_prefix => "test|spec|should", + :setup_name => "setUp", + :teardown_name => "tearDown", + } end - + + def self.grab_config(config_file) - options = { :includes => [], :plugins => [], :framework => :unity } + options = self.default_options + unless (config_file.nil? or config_file.empty?) require 'yaml' yaml_guts = YAML.load_file(config_file) - options.merge!(yaml_guts[:unity] ? yaml_guts[:unity] : yaml_guts[:cmock]) + options.merge!(yaml_guts[:unity] || yaml_guts[:cmock]) raise "No :unity or :cmock section found in #{config_file}" unless options end return(options) @@ -31,126 +47,167 @@ class UnityTestRunnerGenerator def run(input_file, output_file, options=nil) tests = [] - includes = [] + testfile_includes = [] used_mocks = [] - + + @options.merge!(options) unless options.nil? module_name = File.basename(input_file) - + + #pull required data from source file - File.open(input_file, 'r') do |input| - tests = find_tests(input) - includes = find_includes(input) - used_mocks = find_mocks(includes) - end + source = File.read(input_file) + source = source.force_encoding("ISO-8859-1").encode("utf-8", :replace => nil) if ($QUICK_RUBY_VERSION > 10900) + tests = find_tests(source) + headers = find_includes(source) + testfile_includes = headers[:local] + headers[:system] + used_mocks = find_mocks(testfile_includes) + #build runner file + generate(input_file, output_file, tests, used_mocks, testfile_includes) + + #determine which files were used to return them + all_files_used = [input_file, output_file] + all_files_used += testfile_includes.map {|filename| filename + '.c'} unless testfile_includes.empty? + all_files_used += @options[:includes] unless @options[:includes].empty? + return all_files_used.uniq + end + + def generate(input_file, output_file, tests, used_mocks, testfile_includes) File.open(output_file, 'w') do |output| - create_header(output, used_mocks) + create_header(output, used_mocks, testfile_includes) create_externs(output, tests, used_mocks) create_mock_management(output, used_mocks) create_suite_setup_and_teardown(output) create_reset(output, used_mocks) - create_main(output, input_file, tests) + create_main(output, input_file, tests, used_mocks) end - - all_files_used = [input_file, output_file] - all_files_used += includes.map {|filename| filename + '.c'} unless includes.empty? - all_files_used += @options[:includes] unless @options[:includes].empty? - return all_files_used.uniq + + + + + end - - def find_tests(input_file) - tests_raw = [] - tests_args = [] + + + def find_tests(source) + + tests_and_line_numbers = [] - - input_file.rewind - source_raw = input_file.read - source_scrubbed = source_raw.gsub(/\/\/.*$/, '') # remove line comments + + + + + source_scrubbed = source.gsub(/\/\/.*$/, '') # remove line comments source_scrubbed = source_scrubbed.gsub(/\/\*.*?\*\//m, '') # remove block comments lines = source_scrubbed.split(/(^\s*\#.*$) # Treat preprocessor directives as a logical line | (;|\{|\}) /x) # Match ;, {, and } as end of lines lines.each_with_index do |line, index| #find tests - if line =~ /^((?:\s*TEST_CASE\s*\(.*?\)\s*)*)\s*void\s+(test.*?)\s*\(\s*(.*)\s*\)/ + if line =~ /^((?:\s*TEST_CASE\s*\(.*?\)\s*)*)\s*void\s+((?:#{@options[:test_prefix]}).*)\s*\(\s*(.*)\s*\)/ + arguments = $1 name = $2 call = $3 - args = (@options[:use_param_tests] and $1) ? ($1.gsub(/\s*TEST_CASE\s*\(\s*/,'').strip.split(/\s*\)/).compact) : nil - tests_and_line_numbers << { :name => name, :args => args, :call => call, :line_number => 0 } - tests_args = [] + args = nil + if (@options[:use_param_tests] and !arguments.empty?) + args = [] + arguments.scan(/\s*TEST_CASE\s*\((.*)\)\s*$/) {|a| args << a[0]} + end + tests_and_line_numbers << { :test => name, :args => args, :call => call, :line_number => 0 } + end end + tests_and_line_numbers.uniq! {|v| v[:test] } #determine line numbers and create tests to run - source_lines = source_raw.split("\n") + source_lines = source.split("\n") source_index = 0; tests_and_line_numbers.size.times do |i| source_lines[source_index..-1].each_with_index do |line, index| - if (line =~ /#{tests_and_line_numbers[i][:name]}/) + if (line =~ /#{tests_and_line_numbers[i][:test]}/) source_index += index tests_and_line_numbers[i][:line_number] = source_index + 1 break end end end - + + return tests_and_line_numbers end - def find_includes(input_file) - input_file.rewind - includes = [] - input_file.readlines.each do |line| - scan_results = line.scan(/^\s*#include\s+\"\s*(.+)\.[hH]\s*\"/) - includes << scan_results[0][0] if (scan_results.size > 0) - end + def find_includes(source) + + #remove comments (block and line, in three steps to ensure correct precedence) + source.gsub!(/\/\/(?:.+\/\*|\*(?:$|[^\/])).*$/, '') # remove line comments that comment out the start of blocks + source.gsub!(/\/\*.*?\*\//m, '') # remove block comments + source.gsub!(/\/\/.*$/, '') # remove line comments (all that remain) + + #parse out includes + + includes = { + + :local => source.scan(/^\s*#include\s+\"\s*(.+)\.[hH]\s*\"/).flatten, + :system => source.scan(/^\s*#include\s+<\s*(.+)\s*>/).flatten.map { |inc| "<#{inc}>" } + } + + return includes end - + + def find_mocks(includes) mock_headers = [] includes.each do |include_file| mock_headers << File.basename(include_file) if (include_file =~ /^mock/i) end - return mock_headers + return mock_headers end - - def create_header(output, mocks) + + + def create_header(output, mocks, testfile_includes=[]) output.puts('/* AUTOGENERATED FILE. DO NOT EDIT. */') create_runtest(output, mocks) output.puts("\n//=======Automagically Detected Files To Include=====") output.puts("#include \"#{@options[:framework].to_s}.h\"") output.puts('#include "cmock.h"') unless (mocks.empty?) - @options[:includes].flatten.uniq.compact.each do |includes| - output.puts("#include \"#{includes.gsub('.h','')}.h\"") + @options[:includes].flatten.uniq.compact.each do |inc| + output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}") end output.puts('#include ') output.puts('#include ') output.puts('#include "CException.h"') if @options[:plugins].include?(:cexception) + testfile_includes.delete_if{|inc| inc =~ /(unity|cmock)/} + testrunner_includes = testfile_includes - mocks + testrunner_includes.each do |inc| + output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}") + end mocks.each do |mock| output.puts("#include \"#{mock.gsub('.h','')}.h\"") end if @options[:enforce_strict_ordering] - output.puts('') - output.puts('int GlobalExpectCount;') - output.puts('int GlobalVerifyOrder;') - output.puts('char* GlobalOrderError;') + output.puts('') + output.puts('int GlobalExpectCount;') + output.puts('int GlobalVerifyOrder;') + output.puts('char* GlobalOrderError;') end end - + + def create_externs(output, tests, mocks) output.puts("\n//=======External Functions This Runner Calls=====") - output.puts("extern void setUp(void);") - output.puts("extern void tearDown(void);") - output.puts("void resetTest(void);") + output.puts("extern void #{@options[:setup_name]}(void);") + output.puts("extern void #{@options[:teardown_name]}(void);") + tests.each do |test| - output.puts("extern void #{test[:name]}(#{test[:call]});") + output.puts("extern void #{test[:test]}(#{test[:call] || 'void'});") end output.puts('') end - + + def create_mock_management(output, mocks) unless (mocks.empty?) output.puts("\n//=======Mock Management=====") @@ -158,30 +215,34 @@ class UnityTestRunnerGenerator output.puts("{") if @options[:enforce_strict_ordering] output.puts(" GlobalExpectCount = 0;") - output.puts(" GlobalVerifyOrder = 0;") - output.puts(" GlobalOrderError = NULL;") + output.puts(" GlobalVerifyOrder = 0;") + output.puts(" GlobalOrderError = NULL;") end mocks.each do |mock| - output.puts(" #{mock}_Init();") + mock_clean = TypeSanitizer.sanitize_c_identifier(mock) + output.puts(" #{mock_clean}_Init();") end output.puts("}\n") output.puts("static void CMock_Verify(void)") output.puts("{") mocks.each do |mock| - output.puts(" #{mock}_Verify();") + mock_clean = TypeSanitizer.sanitize_c_identifier(mock) + output.puts(" #{mock_clean}_Verify();") end output.puts("}\n") output.puts("static void CMock_Destroy(void)") output.puts("{") mocks.each do |mock| - output.puts(" #{mock}_Destroy();") + mock_clean = TypeSanitizer.sanitize_c_identifier(mock) + output.puts(" #{mock_clean}_Destroy();") end output.puts("}\n") end end - + + def create_suite_setup_and_teardown(output) unless (@options[:suite_setup].nil?) output.puts("\n//=======Suite Setup=====") @@ -198,78 +259,91 @@ class UnityTestRunnerGenerator output.puts("}") end end - + + def create_runtest(output, used_mocks) cexception = @options[:plugins].include? :cexception va_args1 = @options[:use_param_tests] ? ', ...' : '' va_args2 = @options[:use_param_tests] ? '__VA_ARGS__' : '' output.puts("\n//=======Test Runner Used To Run Each Test Below=====") - output.puts("#define RUN_TEST_NO_ARGS") if @options[:use_param_tests] + output.puts("#define RUN_TEST_NO_ARGS") if @options[:use_param_tests] output.puts("#define RUN_TEST(TestFunc, TestLineNum#{va_args1}) \\") output.puts("{ \\") output.puts(" Unity.CurrentTestName = #TestFunc#{va_args2.empty? ? '' : " \"(\" ##{va_args2} \")\""}; \\") output.puts(" Unity.CurrentTestLineNumber = TestLineNum; \\") output.puts(" Unity.NumberOfTests++; \\") + output.puts(" CMock_Init(); \\") unless (used_mocks.empty?) output.puts(" if (TEST_PROTECT()) \\") output.puts(" { \\") output.puts(" CEXCEPTION_T e; \\") if cexception output.puts(" Try { \\") if cexception - output.puts(" CMock_Init(); \\") unless (used_mocks.empty?) - output.puts(" setUp(); \\") + output.puts(" #{@options[:setup_name]}(); \\") + + output.puts(" TestFunc(#{va_args2}); \\") - output.puts(" CMock_Verify(); \\") unless (used_mocks.empty?) + output.puts(" } Catch(e) { TEST_ASSERT_EQUAL_HEX32_MESSAGE(CEXCEPTION_NONE, e, \"Unhandled Exception!\"); } \\") if cexception output.puts(" } \\") - output.puts(" CMock_Destroy(); \\") unless (used_mocks.empty?) + output.puts(" if (TEST_PROTECT() && !TEST_IS_IGNORED) \\") output.puts(" { \\") - output.puts(" tearDown(); \\") + output.puts(" #{@options[:teardown_name]}(); \\") + output.puts(" CMock_Verify(); \\") unless (used_mocks.empty?) + output.puts(" } \\") + output.puts(" CMock_Destroy(); \\") unless (used_mocks.empty?) output.puts(" UnityConcludeTest(); \\") output.puts("}\n") end - + + def create_reset(output, used_mocks) output.puts("\n//=======Test Reset Option=====") - output.puts("void resetTest()") + output.puts("void resetTest(void);") + output.puts("void resetTest(void)") + output.puts("{") output.puts(" CMock_Verify();") unless (used_mocks.empty?) output.puts(" CMock_Destroy();") unless (used_mocks.empty?) - output.puts(" tearDown();") - output.puts(" CMock_Init();") unless (used_mocks.empty?) - output.puts(" setUp();") + output.puts(" #{@options[:teardown_name]}();") + + output.puts(" CMock_Init();") unless (used_mocks.empty?) + output.puts(" #{@options[:setup_name]}();") + output.puts("}") end - - def create_main(output, filename, tests) + + + def create_main(output, filename, tests, used_mocks) output.puts("\nchar *progname;\n") output.puts("\n\n//=======MAIN=====") - + output.puts("int main(int argc, char *argv[])") output.puts("{") - #new stuff added - #output.puts("\nu_long current_time = 4; // needed by authkeys. Used only in to calculate lifetime.\n"); - - output.puts(" progname = argv[0];\n") - #not necessary after all - #output.puts(" init_lib();\n") - #output.puts(" init_auth();\n") + output.puts(" progname = argv[0];\n") + + + + + + output.puts(" suite_setup();") unless @options[:suite_setup].nil? - output.puts(" Unity.TestFile = \"#{filename}\";") + output.puts(" UnityBegin(\"#{filename}\");") if (@options[:use_param_tests]) tests.each do |test| if ((test[:args].nil?) or (test[:args].empty?)) - output.puts(" RUN_TEST(#{test[:name]}, #{test[:line_number]}, RUN_TEST_NO_ARGS);") + output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]}, RUN_TEST_NO_ARGS);") else - test[:args].each {|args| output.puts(" RUN_TEST(#{test[:name]}, #{test[:line_number]}, #{args});")} + test[:args].each {|args| output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]}, #{args});")} end end else - tests.each { |test| output.puts(" RUN_TEST(#{test[:name]}, #{test[:line_number]});") } + tests.each { |test| output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]});") } end output.puts() + output.puts(" CMock_Guts_MemFreeFinal();") unless used_mocks.empty? output.puts(" return #{@options[:suite_teardown].nil? ? "" : "suite_teardown"}(UnityEnd());") output.puts("}") end @@ -279,31 +353,56 @@ end if ($0 == __FILE__) options = { :includes => [] } yaml_file = nil - - #parse out all the options first - ARGV.reject! do |arg| + + + #parse out all the options first (these will all be removed as we go) + ARGV.reject! do |arg| case(arg) - when '-cexception' + when '-cexception' options[:plugins] = [:cexception]; true - when /\w+\.yml/ + when /\.*\.ya?ml/ + options = UnityTestRunnerGenerator.grab_config(arg); true + when /\.*\.h/ + options[:includes] << arg; true + when /--(\w+)=\"?(.*)\"?/ + options[$1.to_sym] = $2; true else false end - end - + end + + #make sure there is at least one parameter left (the input file) if !ARGV[0] - puts ["usage: ruby #{__FILE__} (yaml) (options) input_test_file output_test_runner (includes)", - " blah.yml - will use config options in the yml file (see docs)", - " -cexception - include cexception support"].join("\n") + puts ["\nusage: ruby #{__FILE__} (files) (options) input_test_file (output)", + "\n input_test_file - this is the C file you want to create a runner for", + " output - this is the name of the runner file to generate", + " defaults to (input_test_file)_Runner", + " files:", + " *.yml / *.yaml - loads configuration from here in :unity or :cmock", + " *.h - header files are added as #includes in runner", + " options:", + + " -cexception - include cexception support", + " --setup_name=\"\" - redefine setUp func name to something else", + " --teardown_name=\"\" - redefine tearDown func name to something else", + " --test_prefix=\"\" - redefine test prefix from default test|spec|should", + " --suite_setup=\"\" - code to execute for setup of entire suite", + " --suite_teardown=\"\" - code to execute for teardown of entire suite", + " --use_param_tests=1 - enable parameterized tests (disabled by default)", + ].join("\n") exit 1 end - + + #create the default test runner name if not specified ARGV[1] = ARGV[0].gsub(".c","_Runner.c") if (!ARGV[1]) - - #everything else is an include file - options[:includes] = (ARGV.slice(2..-1).flatten.compact) if (ARGV.size > 2) - + + + + + + UnityTestRunnerGenerator.new(options).run(ARGV[0], ARGV[1]) end + diff --git a/sntp/unity/auto/parseOutput.rb b/sntp/unity/auto/parseOutput.rb new file mode 100755 index 000000000..7ea180f4c --- /dev/null +++ b/sntp/unity/auto/parseOutput.rb @@ -0,0 +1,191 @@ +#============================================================ +# Author: John Theofanopoulos +# A simple parser. Takes the output files generated during the build process and +# extracts information relating to the tests. +# +# Notes: +# To capture an output file under VS builds use the following: +# devenv [build instructions] > Output.txt & type Output.txt +# +# To capture an output file under GCC/Linux builds use the following: +# make | tee Output.txt +# +# To use this parser use the following command +# ruby parseOutput.rb [options] [file] +# options: -xml : produce a JUnit compatible XML file +# file : file to scan for results +#============================================================ + + +class ParseOutput +# The following flag is set to true when a test is found or false otherwise. + @testFlag + @xmlOut + @arrayList + @totalTests + @classIndex + +# Set the flag to indicate if there will be an XML output file or not + def setXmlOutput() + @xmlOut = true + end + +# if write our output to XML + def writeXmlOuput() + output = File.open("report.xml", "w") + output << "\n" + @arrayList.each do |item| + output << item << "\n" + end + output << "\n" + end + +# This function will try and determine when the suite is changed. This is +# is the name that gets added to the classname parameter. + def testSuiteVerify(testSuiteName) + if @testFlag == false + @testFlag = true; + # Split the path name + testName = testSuiteName.split("/") + # Remove the extension + baseName = testName[testName.size - 1].split(".") + @testSuite = "test." + baseName[0] + printf "New Test: %s\n", @testSuite + end + end + + +# Test was flagged as having passed so format the output + def testPassed(array) + lastItem = array.length - 1 + testName = array[lastItem - 1] + testSuiteVerify(array[@className]) + printf "%-40s PASS\n", testName + if @xmlOut == true + @arrayList.push " " + end + end + +# Test was flagged as being ingored so format the output + def testIgnored(array) + lastItem = array.length - 1 + testName = array[lastItem - 2] + reason = array[lastItem].chomp + testSuiteVerify(array[@className]) + printf "%-40s IGNORED\n", testName + if @xmlOut == true + @arrayList.push " " + @arrayList.push " " + reason + " " + @arrayList.push " " + end + end + +# Test was flagged as having failed so format the line + def testFailed(array) + lastItem = array.length - 1 + testName = array[lastItem - 2] + reason = array[lastItem].chomp + " at line: " + array[lastItem - 3] + testSuiteVerify(array[@className]) + printf "%-40s FAILED\n", testName + if @xmlOut == true + @arrayList.push " " + @arrayList.push " " + reason + " " + @arrayList.push " " + end + end + + +# Figure out what OS we are running on. For now we are assuming if it's not Windows it must +# be Unix based. + def detectOS() + myOS = RUBY_PLATFORM.split("-") + if myOS.size == 2 + if myOS[1] == "mingw32" + @className = 1 + else + @className = 0 + end + else + @className = 0 + end + + end + +# Main function used to parse the file that was captured. + def process(name) + @testFlag = false + @arrayList = Array.new + + detectOS() + + puts "Parsing file: " + name + + + testPass = 0 + testFail = 0 + testIgnore = 0 + puts "" + puts "=================== RESULTS =====================" + puts "" + File.open(name).each do |line| + # Typical test lines look like this: + # /.c:36:test_tc1000_opsys:FAIL: Expected 1 Was 0 + # /.c:112:test_tc5004_initCanChannel:IGNORE: Not Yet Implemented + # /.c:115:test_tc5100_initCanVoidPtrs:PASS + # + # where path is different on Unix vs Windows devices (Windows leads with a drive letter) + lineArray = line.split(":") + lineSize = lineArray.size + # If we were able to split the line then we can look to see if any of our target words + # were found. Case is important. + if lineSize >= 4 + # Determine if this test passed + if line.include? ":PASS" + testPassed(lineArray) + testPass += 1 + elsif line.include? ":FAIL:" + testFailed(lineArray) + testFail += 1 + elsif line.include? ":IGNORE:" + testIgnored(lineArray) + testIgnore += 1 + # If none of the keywords are found there are no more tests for this suite so clear + # the test flag + else + @testFlag = false + end + else + @testFlag = false + end + end + puts "" + puts "=================== SUMMARY =====================" + puts "" + puts "Tests Passed : " + testPass.to_s + puts "Tests Failed : " + testFail.to_s + puts "Tests Ignored : " + testIgnore.to_s + @totalTests = testPass + testFail + testIgnore + if @xmlOut == true + heading = "" + @arrayList.insert(0, heading) + writeXmlOuput() + end + + # return result + end + + end + +# If the command line has no values in, used a default value of Output.txt +parseMyFile = ParseOutput.new + +if ARGV.size >= 1 + ARGV.each do |a| + if a == "-xml" + parseMyFile.setXmlOutput(); + else + parseMyFile.process(a) + break + end + end +end diff --git a/sntp/unity/auto/type_sanitizer.rb b/sntp/unity/auto/type_sanitizer.rb new file mode 100755 index 000000000..7c2c0ac2c --- /dev/null +++ b/sntp/unity/auto/type_sanitizer.rb @@ -0,0 +1,8 @@ +module TypeSanitizer + + def self.sanitize_c_identifier(unsanitized) + # convert filename to valid C identifier by replacing invalid chars with '_' + return unsanitized.gsub(/[-\/\\\.\,\s]/, "_") + end + +end diff --git a/sntp/unity/auto/unity_test_summary.py b/sntp/unity/auto/unity_test_summary.py new file mode 100755 index 000000000..c64f6c5df --- /dev/null +++ b/sntp/unity/auto/unity_test_summary.py @@ -0,0 +1,135 @@ +#! python3 +# ========================================== +# Unity Project - A Test Framework for C +# Copyright (c) 2015 Alexander Mueller / XelaRellum@web.de +# [Released under MIT License. Please refer to license.txt for details] +# Based on the ruby script by Mike Karlesky, Mark VanderVoord, Greg Williams +# ========================================== +import sys +import os +import re +from glob import glob + +class UnityTestSummary: + def __init__(self): + self.report = '' + self.total_tests = 0 + self.failures = 0 + self.ignored = 0 + + def run(self): + # Clean up result file names + results = [] + for target in self.targets: + results.append(target.replace('\\', '/')) + + # Dig through each result file, looking for details on pass/fail: + failure_output = [] + ignore_output = [] + + for result_file in results: + lines = list(map(lambda line: line.rstrip(), open(result_file, "r").read().split('\n'))) + if len(lines) == 0: + raise Exception("Empty test result file: %s" % result_file) + + details = self.get_details(result_file, lines) + failures = details['failures'] + ignores = details['ignores'] + if len(failures) > 0: failure_output.append('\n'.join(failures)) + if len(ignores) > 0: ignore_output.append('n'.join(ignores)) + tests,failures,ignored = self.parse_test_summary('\n'.join(lines)) + self.total_tests += tests + self.failures += failures + self.ignored += ignored + + if self.ignored > 0: + self.report += "\n" + self.report += "--------------------------\n" + self.report += "UNITY IGNORED TEST SUMMARY\n" + self.report += "--------------------------\n" + self.report += "\n".join(ignore_output) + + if self.failures > 0: + self.report += "\n" + self.report += "--------------------------\n" + self.report += "UNITY FAILED TEST SUMMARY\n" + self.report += "--------------------------\n" + self.report += '\n'.join(failure_output) + + self.report += "\n" + self.report += "--------------------------\n" + self.report += "OVERALL UNITY TEST SUMMARY\n" + self.report += "--------------------------\n" + self.report += "{total_tests} TOTAL TESTS {failures} TOTAL FAILURES {ignored} IGNORED\n".format(total_tests = self.total_tests, failures=self.failures, ignored=self.ignored) + self.report += "\n" + + return self.report + + def set_targets(self, target_array): + self.targets = target_array + + def set_root_path(self, path): + self.root = path + + def usage(self, err_msg=None): + print("\nERROR: ") + if err_msg: + print(err_msg) + print("\nUsage: unity_test_summary.rb result_file_directory/ root_path/") + print(" result_file_directory - The location of your results files.") + print(" Defaults to current directory if not specified.") + print(" Should end in / if specified.") + print(" root_path - Helpful for producing more verbose output if using relative paths.") + sys.exit(1) + + def get_details(self, result_file, lines): + results = { 'failures': [], 'ignores': [], 'successes': [] } + for line in lines: + parts = line.split(':') + if len(parts) != 5: + continue + src_file,src_line,test_name,status,msg = parts + if len(self.root) > 0: + line_out = "%s%s" % (self.root, line) + else: + line_out = line + if status == 'IGNORE': + results['ignores'].append(line_out) + elif status == 'FAIL': + results['failures'].append(line_out) + elif status == 'PASS': + results['successes'].append(line_out) + return results + + def parse_test_summary(self, summary): + m = re.search(r"([0-9]+) Tests ([0-9]+) Failures ([0-9]+) Ignored", summary) + if not m: + raise Exception("Couldn't parse test results: %s" % summary) + + return int(m.group(1)), int(m.group(2)), int(m.group(3)) + + +if __name__ == '__main__': + uts = UnityTestSummary() + try: + #look in the specified or current directory for result files + if len(sys.argv) > 1: + targets_dir = sys.argv[1] + else: + targets_dir = './' + targets = list(map(lambda x: x.replace('\\', '/'), glob(targets_dir + '*.test*'))) + if len(targets) == 0: + raise Exception("No *.testpass or *.testfail files found in '%s'" % targets_dir) + uts.set_targets(targets) + + #set the root path + if len(sys.argv) > 2: + root_path = sys.argv[2] + else: + root_path = os.path.split(__file__)[0] + uts.set_root_path(root_path) + + #run the summarizer + print(uts.run()) + except Exception as e: + uts.usage(e) diff --git a/sntp/unity/auto/unity_test_summary.rb b/sntp/unity/auto/unity_test_summary.rb index 69ec2e8d9..78d727efe 100644 --- a/sntp/unity/auto/unity_test_summary.rb +++ b/sntp/unity/auto/unity_test_summary.rb @@ -2,7 +2,7 @@ # Unity Project - A Test Framework for C # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams # [Released under MIT License. Please refer to license.txt for details] -# ========================================== +# ========================================== #!/usr/bin/ruby # @@ -15,22 +15,24 @@ class UnityTestSummary include FileUtils::Verbose attr_reader :report, :total_tests, :failures, :ignored - - def initialize + + def initialize(opts = {}) @report = '' @total_tests = 0 @failures = 0 @ignored = 0 + + end - + def run # Clean up result file names results = @targets.map {|target| target.gsub(/\\/,'/')} - - # Dig through each result file, looking for details on pass/fail: + + # Dig through each result file, looking for details on pass/fail: failure_output = [] ignore_output = [] - + results.each do |result_file| lines = File.readlines(result_file).map { |line| line.chomp } if lines.length == 0 @@ -45,7 +47,7 @@ class UnityTestSummary @ignored += ignored end end - + if @ignored > 0 @report += "\n" @report += "--------------------------\n" @@ -53,7 +55,7 @@ class UnityTestSummary @report += "--------------------------\n" @report += ignore_output.flatten.join("\n") end - + if @failures > 0 @report += "\n" @report += "--------------------------\n" @@ -61,7 +63,7 @@ class UnityTestSummary @report += "--------------------------\n" @report += failure_output.flatten.join("\n") end - + @report += "\n" @report += "--------------------------\n" @report += "OVERALL UNITY TEST SUMMARY\n" @@ -69,32 +71,33 @@ class UnityTestSummary @report += "#{@total_tests} TOTAL TESTS #{@failures} TOTAL FAILURES #{@ignored} IGNORED\n" @report += "\n" end - + def set_targets(target_array) @targets = target_array end - + def set_root_path(path) @root = path end def usage(err_msg=nil) + puts "\nERROR: " puts err_msg if err_msg - puts "Usage: unity_test_summary.rb" + puts "\nUsage: unity_test_summary.rb result_file_directory/ root_path/" + puts " result_file_directory - The location of your results files." + puts " Defaults to current directory if not specified." + puts " Should end in / if specified." + puts " root_path - Helpful for producing more verbose output if using relative paths." exit 1 end - + protected - - @@targets=nil - @@path=nil - @@root=nil def get_details(result_file, lines) results = { :failures => [], :ignores => [], :successes => [] } lines.each do |line| src_file,src_line,test_name,status,msg = line.split(/:/) - line_out = ((@root and (@root != 0)) ? "#{@root}#{line}" : line ).gsub(/\//, "\\") + line_out = ((@root && (@root != 0)) ? "#{@root}#{line}" : line ).gsub(/\//, "\\") case(status) when 'IGNORE' then results[:ignores] << line_out when 'FAIL' then results[:failures] << line_out @@ -103,9 +106,9 @@ class UnityTestSummary end return results end - + def parse_test_summary(summary) - if summary[-3..-1].join("\n") =~ /(\d+) Tests (\d+) Failures (\d+) Ignored/ + if summary.find { |v| v =~ /(\d+) Tests (\d+) Failures (\d+) Ignored/ } [$1.to_i,$2.to_i,$3.to_i] else raise "Couldn't parse test results: #{summary}" @@ -113,14 +116,34 @@ class UnityTestSummary end def here; File.expand_path(File.dirname(__FILE__)); end - + end if $0 == __FILE__ - script = UnityTestSummary.new + + #parse out the command options + opts, args = ARGV.partition {|v| v =~ /^--\w+/} + opts.map! {|v| v[2..-1].to_sym } + + #create an instance to work with + uts = UnityTestSummary.new(opts) + begin - script.run + #look in the specified or current directory for result files + args[0] ||= './' + targets = "#{ARGV[0].gsub(/\\/, '/')}**/*.test*" + results = Dir[targets] + raise "No *.testpass, *.testfail, or *.testresults files found in '#{targets}'" if results.empty? + uts.set_targets(results) + + #set the root path + args[1] ||= Dir.pwd + '/' + uts.set_root_path(ARGV[1]) + + #run the summarizer + puts uts.run rescue Exception => e - script.usage e.message + uts.usage e.message end end + diff --git a/tests/libntp/Makefile.am b/tests/libntp/Makefile.am index c0177f3e5..95dfcce17 100644 --- a/tests/libntp/Makefile.am +++ b/tests/libntp/Makefile.am @@ -219,6 +219,7 @@ $(srcdir)/run-authkeys.c: $(srcdir)/authkeys.c $(std_unity_list) test_buftvtots_SOURCES = \ buftvtots.c \ run-buftvtots.c \ + lfptest.c \ $(NULL) $(srcdir)/run-buftvtots.c: $(srcdir)/buftvtots.c $(std_unity_list) @@ -298,6 +299,7 @@ test_decodenetnum_LDADD = \ test_decodenetnum_SOURCES = \ decodenetnum.c \ run-decodenetnum.c \ + sockaddrtest.c \ $(NULL) $(srcdir)/run-decodenetnum.c: $(srcdir)/decodenetnum.c $(std_unity_list) @@ -318,6 +320,7 @@ $(srcdir)/run-hextoint.c: $(srcdir)/hextoint.c $(std_unity_list) test_hextolfp_SOURCES = \ hextolfp.c \ run-hextolfp.c \ + lfptest.c \ $(NULL) $(srcdir)/run-hextolfp.c: $(srcdir)/hextolfp.c $(std_unity_list) @@ -378,6 +381,7 @@ $(srcdir)/run-msyslog.c: $(srcdir)/msyslog.c $(std_unity_list) test_netof_SOURCES = \ netof.c \ run-netof.c \ + sockaddrtest.c \ $(NULL) $(srcdir)/run-netof.c: $(srcdir)/netof.c $(std_unity_list) @@ -468,6 +472,7 @@ $(srcdir)/run-sfptostr.c: $(srcdir)/sfptostr.c $(std_unity_list) test_socktoa_SOURCES = \ socktoa.c \ run-socktoa.c \ + sockaddrtest.c \ $(NULL) $(srcdir)/run-socktoa.c: $(srcdir)/socktoa.c $(std_unity_list) @@ -503,6 +508,7 @@ test_strtolfp_LDADD = \ test_strtolfp_SOURCES = \ strtolfp.c \ run-strtolfp.c \ + lfptest.c \ $(NULL) $(srcdir)/run-strtolfp.c: $(srcdir)/strtolfp.c $(std_unity_list) @@ -543,6 +549,7 @@ $(srcdir)/run-tstotv.c: $(srcdir)/tstotv.c $(std_unity_list) test_tvtots_SOURCES = \ tvtots.c \ run-tvtots.c \ + lfptest.c \ $(NULL) $(srcdir)/run-tvtots.c: $(srcdir)/tvtots.c $(std_unity_list) diff --git a/tests/libntp/a_md5encrypt.c b/tests/libntp/a_md5encrypt.c index 70a872174..89f8cb8dd 100644 --- a/tests/libntp/a_md5encrypt.c +++ b/tests/libntp/a_md5encrypt.c @@ -25,6 +25,14 @@ const char *packet = "ijklmnopqrstuvwx"; const int totalLength = packetLength + keyIdLength + digestLength; const char *expectedPacket = "ijklmnopqrstuvwx\0\0\0\0\x0c\x0e\x84\xcf\x0b\xb7\xa8\x68\x8e\x52\x38\xdb\xbc\x1c\x39\x53"; + +void test_Encrypt(void); +void test_DecryptValid(void); +void test_DecryptInvalid(void); +void test_IPv4AddressToRefId(void); +void test_IPv6AddressToRefId(void); + + void test_Encrypt(void) { char *packetPtr; diff --git a/tests/libntp/atoint.c b/tests/libntp/atoint.c index aca6ef596..e640c36d0 100644 --- a/tests/libntp/atoint.c +++ b/tests/libntp/atoint.c @@ -4,6 +4,15 @@ #include "ntp_calendar.h" #include "unity.h" +void test_RegularPositive(void); +void test_RegularNegative(void); +void test_PositiveOverflowBoundary(void); +void test_NegativeOverflowBoundary(void); +void test_PositiveOverflowBig(void); +void test_IllegalCharacter(void); + + + void test_RegularPositive(void) { const char *str = "17"; long val; diff --git a/tests/libntp/atouint.c b/tests/libntp/atouint.c index f312794af..460bf1caf 100644 --- a/tests/libntp/atouint.c +++ b/tests/libntp/atouint.c @@ -6,6 +6,14 @@ #include "unity.h" +void test_RegularPositive(void); +void test_PositiveOverflowBoundary(void); +void test_PositiveOverflowBig(void); +void test_Negative(void); +void test_IllegalChar(void); + + + void test_RegularPositive(void) { const char *str = "305"; u_long actual; diff --git a/tests/libntp/authkeys.c b/tests/libntp/authkeys.c index 40fb0c576..6a10c01c5 100644 --- a/tests/libntp/authkeys.c +++ b/tests/libntp/authkeys.c @@ -17,6 +17,17 @@ u_long current_time = 4; int counter = 0; +void setUp(void); +void tearDown(void); +void AddTrustedKey(keyid_t keyno); +void AddUntrustedKey(keyid_t keyno); +void test_AddTrustedKeys(void); +void test_AddUntrustedKey(void); +void test_HaveKeyCorrect(void); +void test_HaveKeyIncorrect(void); +void test_AddWithAuthUseKey(void); +void test_EmptyKey(void); + void setUp(void) @@ -67,7 +78,7 @@ AddUntrustedKey(keyid_t keyno) { } void -test_AddTrustedKeys() { +test_AddTrustedKeys(void) { const keyid_t KEYNO1 = 5; const keyid_t KEYNO2 = 8; @@ -79,7 +90,7 @@ test_AddTrustedKeys() { } void -test_AddUntrustedKey() { +test_AddUntrustedKey(void) { const keyid_t KEYNO = 3; AddUntrustedKey(KEYNO); @@ -88,7 +99,7 @@ test_AddUntrustedKey() { } void -test_HaveKeyCorrect() { +test_HaveKeyCorrect(void) { const keyid_t KEYNO = 3; AddTrustedKey(KEYNO); @@ -98,7 +109,7 @@ test_HaveKeyCorrect() { } void -test_HaveKeyIncorrect() { +test_HaveKeyIncorrect(void) { const keyid_t KEYNO = 2; TEST_ASSERT_FALSE(auth_havekey(KEYNO)); @@ -106,7 +117,7 @@ test_HaveKeyIncorrect() { } void -test_AddWithAuthUseKey() { +test_AddWithAuthUseKey(void) { const keyid_t KEYNO = 5; const char* KEY = "52a"; @@ -114,7 +125,7 @@ test_AddWithAuthUseKey() { } void -test_EmptyKey() { +test_EmptyKey(void) { const keyid_t KEYNO = 3; const char* KEY = ""; diff --git a/tests/libntp/lfptest.c b/tests/libntp/lfptest.c new file mode 100644 index 000000000..b9546b219 --- /dev/null +++ b/tests/libntp/lfptest.c @@ -0,0 +1,10 @@ +#include "config.h" +#include "ntp_fp.h" + +int IsEqual(const l_fp expected, const l_fp actual) { + if (L_ISEQU(&expected, &actual)) { + return TRUE; + } else { + return FALSE; + } +} diff --git a/tests/libntp/lfptest.h b/tests/libntp/lfptest.h index 46c873853..30a85f5b3 100644 --- a/tests/libntp/lfptest.h +++ b/tests/libntp/lfptest.h @@ -1,6 +1,7 @@ #ifndef NTP_TESTS_LFPTEST_H #define NTP_TESTS_LFPTEST_H +#include "config.h" #include "ntp_fp.h" @@ -10,13 +11,6 @@ static const int32 HALF_PROMILLE_DOWN = 2147483; // slightly less than 0.0005 static const int32 QUARTER = 1073741824L; static const int32 QUARTER_PROMILLE_APPRX = 1073742L; -int -IsEqual(const l_fp expected, const l_fp actual) { - if (L_ISEQU(&expected, &actual)) { - return TRUE; - } else { - return FALSE; - } -} +int IsEqual(const l_fp expected, const l_fp actual); #endif diff --git a/tests/libntp/run-a_md5encrypt.c b/tests/libntp/run-a_md5encrypt.c index 95678d406..ef7c47a97 100644 --- a/tests/libntp/run-a_md5encrypt.c +++ b/tests/libntp/run-a_md5encrypt.c @@ -22,11 +22,13 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp.h" +#include "ntp_stdlib.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_Encrypt(void); extern void test_DecryptValid(void); extern void test_DecryptInvalid(void); @@ -35,7 +37,8 @@ extern void test_IPv6AddressToRefId(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -48,13 +51,12 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "a_md5encrypt.c"; UnityBegin("a_md5encrypt.c"); RUN_TEST(test_Encrypt, 29); - RUN_TEST(test_DecryptValid, 51); - RUN_TEST(test_DecryptInvalid, 58); - RUN_TEST(test_IPv4AddressToRefId, 67); - RUN_TEST(test_IPv6AddressToRefId, 81); + RUN_TEST(test_DecryptValid, 30); + RUN_TEST(test_DecryptInvalid, 31); + RUN_TEST(test_IPv4AddressToRefId, 32); + RUN_TEST(test_IPv6AddressToRefId, 33); return (UnityEnd()); } diff --git a/tests/libntp/run-atoint.c b/tests/libntp/run-atoint.c index 2764c9a47..0bfb42743 100644 --- a/tests/libntp/run-atoint.c +++ b/tests/libntp/run-atoint.c @@ -22,6 +22,9 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" //=======External Functions This Runner Calls===== extern void setUp(void); @@ -35,7 +38,8 @@ extern void test_IllegalCharacter(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -48,14 +52,13 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "atoint.c"; UnityBegin("atoint.c"); RUN_TEST(test_RegularPositive, 7); - RUN_TEST(test_RegularNegative, 15); - RUN_TEST(test_PositiveOverflowBoundary, 23); - RUN_TEST(test_NegativeOverflowBoundary, 30); - RUN_TEST(test_PositiveOverflowBig, 37); - RUN_TEST(test_IllegalCharacter, 44); + RUN_TEST(test_RegularNegative, 8); + RUN_TEST(test_PositiveOverflowBoundary, 9); + RUN_TEST(test_NegativeOverflowBoundary, 10); + RUN_TEST(test_PositiveOverflowBig, 11); + RUN_TEST(test_IllegalCharacter, 12); return (UnityEnd()); } diff --git a/tests/libntp/run-atouint.c b/tests/libntp/run-atouint.c index 7185031e5..8bad12772 100644 --- a/tests/libntp/run-atouint.c +++ b/tests/libntp/run-atouint.c @@ -22,11 +22,14 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" +#include "ntp_fp.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_RegularPositive(void); extern void test_PositiveOverflowBoundary(void); extern void test_PositiveOverflowBig(void); @@ -35,7 +38,8 @@ extern void test_IllegalChar(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -48,13 +52,12 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "atouint.c"; UnityBegin("atouint.c"); RUN_TEST(test_RegularPositive, 9); - RUN_TEST(test_PositiveOverflowBoundary, 17); - RUN_TEST(test_PositiveOverflowBig, 24); - RUN_TEST(test_Negative, 31); - RUN_TEST(test_IllegalChar, 38); + RUN_TEST(test_PositiveOverflowBoundary, 10); + RUN_TEST(test_PositiveOverflowBig, 11); + RUN_TEST(test_Negative, 12); + RUN_TEST(test_IllegalChar, 13); return (UnityEnd()); } diff --git a/tests/libntp/run-authkeys.c b/tests/libntp/run-authkeys.c index 20c7e24ea..96ff37773 100644 --- a/tests/libntp/run-authkeys.c +++ b/tests/libntp/run-authkeys.c @@ -22,11 +22,14 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_AddTrustedKeys(void); extern void test_AddUntrustedKey(void); extern void test_HaveKeyCorrect(void); @@ -36,7 +39,8 @@ extern void test_EmptyKey(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -49,14 +53,13 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "authkeys.c"; UnityBegin("authkeys.c"); - RUN_TEST(test_AddTrustedKeys, 70); - RUN_TEST(test_AddUntrustedKey, 82); - RUN_TEST(test_HaveKeyCorrect, 91); - RUN_TEST(test_HaveKeyIncorrect, 101); - RUN_TEST(test_AddWithAuthUseKey, 109); - RUN_TEST(test_EmptyKey, 117); + RUN_TEST(test_AddTrustedKeys, 24); + RUN_TEST(test_AddUntrustedKey, 25); + RUN_TEST(test_HaveKeyCorrect, 26); + RUN_TEST(test_HaveKeyIncorrect, 27); + RUN_TEST(test_AddWithAuthUseKey, 28); + RUN_TEST(test_EmptyKey, 29); return (UnityEnd()); } diff --git a/tests/libntp/run-buftvtots.c b/tests/libntp/run-buftvtots.c index c23a3a56e..dbf22a677 100644 --- a/tests/libntp/run-buftvtots.c +++ b/tests/libntp/run-buftvtots.c @@ -22,11 +22,16 @@ #include "unity.h" #include #include +//#include "config.h" +//#include "ntp_types.h" +//#include "ntp_stdlib.h" +//#include "lfptest.h" +//#include "ntp_unixtime.h" +//#include //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_ZeroBuffer(void); extern void test_IntegerAndFractionalBuffer(void); extern void test_IllegalMicroseconds(void); @@ -34,7 +39,8 @@ extern void test_AlwaysFalseOnWindows(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -47,7 +53,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "buftvtots.c"; UnityBegin("buftvtots.c"); RUN_TEST(test_ZeroBuffer, 17); RUN_TEST(test_IntegerAndFractionalBuffer, 32); diff --git a/tests/libntp/run-calendar.c b/tests/libntp/run-calendar.c index 3edb84b95..5acf249d2 100644 --- a/tests/libntp/run-calendar.c +++ b/tests/libntp/run-calendar.c @@ -22,11 +22,14 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" +#include //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_DaySplitMerge(void); extern void test_SplitYearDays1(void); extern void test_SplitYearDays2(void); @@ -41,7 +44,8 @@ extern void test_RoundTripDayStart(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -54,7 +58,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "calendar.c"; UnityBegin("calendar.c"); RUN_TEST(test_DaySplitMerge, 228); RUN_TEST(test_SplitYearDays1, 258); diff --git a/tests/libntp/run-caljulian.c b/tests/libntp/run-caljulian.c index 8049d1b9a..723322a5a 100644 --- a/tests/libntp/run-caljulian.c +++ b/tests/libntp/run-caljulian.c @@ -22,11 +22,15 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_calendar.h" +#include "ntp_stdlib.h" +#include "test-libntp.h" +#include //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_RegularTime(void); extern void test_LeapYear(void); extern void test_uLongBoundary(void); @@ -34,7 +38,8 @@ extern void test_uLongWrapped(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -47,7 +52,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "caljulian.c"; UnityBegin("caljulian.c"); RUN_TEST(test_RegularTime, 73); RUN_TEST(test_LeapYear, 85); diff --git a/tests/libntp/run-caltontp.c b/tests/libntp/run-caltontp.c index b5c9863eb..aa9f9b5d7 100644 --- a/tests/libntp/run-caltontp.c +++ b/tests/libntp/run-caltontp.c @@ -22,11 +22,12 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_calendar.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_DateGivenMonthDay(void); extern void test_DateGivenYearDay(void); extern void test_DateLeapYear(void); @@ -34,7 +35,8 @@ extern void test_WraparoundDateIn2036(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -47,7 +49,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "caltontp.c"; UnityBegin("caltontp.c"); RUN_TEST(test_DateGivenMonthDay, 6); RUN_TEST(test_DateGivenYearDay, 16); diff --git a/tests/libntp/run-calyearstart.c b/tests/libntp/run-calyearstart.c index 352267382..b81ab35e4 100644 --- a/tests/libntp/run-calyearstart.c +++ b/tests/libntp/run-calyearstart.c @@ -22,18 +22,22 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" +#include "test-libntp.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_NoWrapInDateRange(void); extern void test_NoWrapInDateRangeLeapYear(void); extern void test_WrapInDateRange(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -46,7 +50,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "calyearstart.c"; UnityBegin("calyearstart.c"); RUN_TEST(test_NoWrapInDateRange, 22); RUN_TEST(test_NoWrapInDateRangeLeapYear, 30); diff --git a/tests/libntp/run-clocktime.c b/tests/libntp/run-clocktime.c index 58e1725b9..956dc65c5 100644 --- a/tests/libntp/run-clocktime.c +++ b/tests/libntp/run-clocktime.c @@ -22,11 +22,14 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_calendar.h" +#include "ntp_stdlib.h" +#include "test-libntp.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_CurrentYear(void); extern void test_CurrentYearFuzz(void); extern void test_TimeZoneOffset(void); @@ -38,7 +41,8 @@ extern void test_AlwaysInLimit(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -51,7 +55,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "clocktime.c"; UnityBegin("clocktime.c"); RUN_TEST(test_CurrentYear, 35); RUN_TEST(test_CurrentYearFuzz, 51); diff --git a/tests/libntp/run-decodenetnum.c b/tests/libntp/run-decodenetnum.c index 4f9c5d570..d9d80e7e8 100644 --- a/tests/libntp/run-decodenetnum.c +++ b/tests/libntp/run-decodenetnum.c @@ -22,11 +22,13 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "sockaddrtest.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_IPv4AddressOnly(void); extern void test_IPv4AddressWithPort(void); extern void test_IPv6AddressOnly(void); @@ -36,7 +38,8 @@ extern void test_IllegalCharInPort(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -49,7 +52,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "decodenetnum.c"; UnityBegin("decodenetnum.c"); RUN_TEST(test_IPv4AddressOnly, 9); RUN_TEST(test_IPv4AddressWithPort, 23); diff --git a/tests/libntp/run-hextoint.c b/tests/libntp/run-hextoint.c index a69792177..1ffb062eb 100644 --- a/tests/libntp/run-hextoint.c +++ b/tests/libntp/run-hextoint.c @@ -22,6 +22,10 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" +#include "ntp_fp.h" //=======External Functions This Runner Calls===== extern void setUp(void); @@ -34,7 +38,8 @@ extern void test_IllegalChar(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -47,7 +52,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "hextoint.c"; UnityBegin("hextoint.c"); RUN_TEST(test_SingleDigit, 10); RUN_TEST(test_MultipleDigits, 18); diff --git a/tests/libntp/run-hextolfp.c b/tests/libntp/run-hextolfp.c index abc775853..c11992b5e 100644 --- a/tests/libntp/run-hextolfp.c +++ b/tests/libntp/run-hextolfp.c @@ -22,11 +22,14 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" +#include "lfptest.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_PositiveInteger(void); extern void test_NegativeInteger(void); extern void test_PositiveFraction(void); @@ -36,7 +39,8 @@ extern void test_IllegalChar(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -49,7 +53,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "hextolfp.c"; UnityBegin("hextolfp.c"); RUN_TEST(test_PositiveInteger, 11); RUN_TEST(test_NegativeInteger, 22); diff --git a/tests/libntp/run-humandate.c b/tests/libntp/run-humandate.c index 4336bd996..acb1e5223 100644 --- a/tests/libntp/run-humandate.c +++ b/tests/libntp/run-humandate.c @@ -22,17 +22,20 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_calendar.h" +#include "ntp_stdlib.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_RegularTime(void); extern void test_CurrentTime(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -45,7 +48,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "humandate.c"; UnityBegin("humandate.c"); RUN_TEST(test_RegularTime, 9); RUN_TEST(test_CurrentTime, 24); diff --git a/tests/libntp/run-lfpfunc.c b/tests/libntp/run-lfpfunc.c index 224026233..d01c2708e 100644 --- a/tests/libntp/run-lfpfunc.c +++ b/tests/libntp/run-lfpfunc.c @@ -22,11 +22,15 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_fp.h" +#include +#include //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_AdditionLR(void); extern void test_AdditionRL(void); extern void test_SubtractionLR(void); @@ -39,7 +43,8 @@ extern void test_UnsignedRelOps(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -52,7 +57,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "lfpfunc.c"; UnityBegin("lfpfunc.c"); RUN_TEST(test_AdditionLR, 251); RUN_TEST(test_AdditionRL, 265); diff --git a/tests/libntp/run-lfptostr.c b/tests/libntp/run-lfptostr.c index 8a541711b..20dc878aa 100644 --- a/tests/libntp/run-lfptostr.c +++ b/tests/libntp/run-lfptostr.c @@ -22,11 +22,13 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_fp.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_PositiveInteger(void); extern void test_NegativeInteger(void); extern void test_PositiveIntegerWithFraction(void); @@ -41,7 +43,8 @@ extern void test_UnsignedInteger(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -54,7 +57,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "lfptostr.c"; UnityBegin("lfptostr.c"); RUN_TEST(test_PositiveInteger, 23); RUN_TEST(test_NegativeInteger, 31); diff --git a/tests/libntp/run-modetoa.c b/tests/libntp/run-modetoa.c index 0fdef7a26..f43d86333 100644 --- a/tests/libntp/run-modetoa.c +++ b/tests/libntp/run-modetoa.c @@ -22,17 +22,19 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_KnownMode(void); extern void test_UnknownMode(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -45,7 +47,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "modetoa.c"; UnityBegin("modetoa.c"); RUN_TEST(test_KnownMode, 9); RUN_TEST(test_UnknownMode, 16); diff --git a/tests/libntp/run-msyslog.c b/tests/libntp/run-msyslog.c index e21e76080..6f117bb03 100644 --- a/tests/libntp/run-msyslog.c +++ b/tests/libntp/run-msyslog.c @@ -22,11 +22,12 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_msnprintf(void); extern void test_msnprintfLiteralPercentm(void); extern void test_msnprintfBackslashLiteralPercentm(void); @@ -38,7 +39,8 @@ extern void test_msnprintfTruncate(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -51,7 +53,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "msyslog.c"; UnityBegin("msyslog.c"); RUN_TEST(test_msnprintf, 14); RUN_TEST(test_msnprintfLiteralPercentm, 31); diff --git a/tests/libntp/run-netof.c b/tests/libntp/run-netof.c index 401192d26..46b18261f 100644 --- a/tests/libntp/run-netof.c +++ b/tests/libntp/run-netof.c @@ -22,11 +22,14 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" +#include "sockaddrtest.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_ClassBAddress(void); extern void test_ClassCAddress(void); extern void test_ClassAAddress(void); @@ -34,7 +37,8 @@ extern void test_IPv6Address(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -47,7 +51,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "netof.c"; UnityBegin("netof.c"); RUN_TEST(test_ClassBAddress, 10); RUN_TEST(test_ClassCAddress, 20); diff --git a/tests/libntp/run-numtoa.c b/tests/libntp/run-numtoa.c index 4f71aa1f4..9a10e6369 100644 --- a/tests/libntp/run-numtoa.c +++ b/tests/libntp/run-numtoa.c @@ -22,17 +22,20 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_fp.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_Address(void); extern void test_Netmask(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -45,7 +48,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "numtoa.c"; UnityBegin("numtoa.c"); RUN_TEST(test_Address, 10); RUN_TEST(test_Netmask, 17); diff --git a/tests/libntp/run-numtohost.c b/tests/libntp/run-numtohost.c index 8b92408a8..f294a45ab 100644 --- a/tests/libntp/run-numtohost.c +++ b/tests/libntp/run-numtohost.c @@ -22,16 +22,19 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_fp.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_LoopbackNetNonResolve(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -44,7 +47,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "numtohost.c"; UnityBegin("numtohost.c"); RUN_TEST(test_LoopbackNetNonResolve, 9); diff --git a/tests/libntp/run-octtoint.c b/tests/libntp/run-octtoint.c index dc2bed566..6c18f5323 100644 --- a/tests/libntp/run-octtoint.c +++ b/tests/libntp/run-octtoint.c @@ -22,6 +22,8 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" //=======External Functions This Runner Calls===== extern void setUp(void); @@ -36,7 +38,8 @@ extern void test_IllegalDigit(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -49,7 +52,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "octtoint.c"; UnityBegin("octtoint.c"); RUN_TEST(test_SingleDigit, 7); RUN_TEST(test_MultipleDigits, 15); diff --git a/tests/libntp/run-prettydate.c b/tests/libntp/run-prettydate.c index 2067b13c5..f89abd5a6 100644 --- a/tests/libntp/run-prettydate.c +++ b/tests/libntp/run-prettydate.c @@ -22,6 +22,10 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" +#include "ntp_fp.h" //=======External Functions This Runner Calls===== extern void setUp(void); @@ -30,7 +34,8 @@ extern void test_ConstantDate(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -43,7 +48,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "prettydate.c"; UnityBegin("prettydate.c"); RUN_TEST(test_ConstantDate, 10); diff --git a/tests/libntp/run-recvbuff.c b/tests/libntp/run-recvbuff.c index 8060105e3..87b85bdee 100644 --- a/tests/libntp/run-recvbuff.c +++ b/tests/libntp/run-recvbuff.c @@ -22,6 +22,8 @@ #include "unity.h" #include #include +#include "config.h" +#include "recvbuff.h" //=======External Functions This Runner Calls===== extern void setUp(void); @@ -32,7 +34,8 @@ extern void test_GetAndFill(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -45,7 +48,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "recvbuff.c"; UnityBegin("recvbuff.c"); RUN_TEST(test_Initialization, 15); RUN_TEST(test_GetAndFree, 23); diff --git a/tests/libntp/run-refidsmear.c b/tests/libntp/run-refidsmear.c index 9eabcdb53..9e74f6d34 100644 --- a/tests/libntp/run-refidsmear.c +++ b/tests/libntp/run-refidsmear.c @@ -22,16 +22,21 @@ #include "unity.h" #include #include +#include "config.h" +#include +#include +#include +#include //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_refidsmear(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -44,7 +49,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "refidsmear.c"; UnityBegin("refidsmear.c"); RUN_TEST(test_refidsmear, 101); diff --git a/tests/libntp/run-refnumtoa.c b/tests/libntp/run-refnumtoa.c index 8aad9239d..54ee99207 100644 --- a/tests/libntp/run-refnumtoa.c +++ b/tests/libntp/run-refnumtoa.c @@ -22,17 +22,20 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_net.h" +#include "ntp_refclock.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_LocalClock(void); extern void test_UnknownId(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -45,7 +48,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "refnumtoa.c"; UnityBegin("refnumtoa.c"); RUN_TEST(test_LocalClock, 13); RUN_TEST(test_UnknownId, 40); diff --git a/tests/libntp/run-sfptostr.c b/tests/libntp/run-sfptostr.c index 1c28fe8c5..e420ee9b9 100644 --- a/tests/libntp/run-sfptostr.c +++ b/tests/libntp/run-sfptostr.c @@ -22,11 +22,12 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_fp.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_PositiveInteger(void); extern void test_NegativeInteger(void); extern void test_PositiveIntegerPositiveFraction(void); @@ -38,7 +39,8 @@ extern void test_SingleDecimalRounding(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -51,7 +53,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "sfptostr.c"; UnityBegin("sfptostr.c"); RUN_TEST(test_PositiveInteger, 11); RUN_TEST(test_NegativeInteger, 19); diff --git a/tests/libntp/run-socktoa.c b/tests/libntp/run-socktoa.c index a6fa77834..730821b27 100644 --- a/tests/libntp/run-socktoa.c +++ b/tests/libntp/run-socktoa.c @@ -22,6 +22,10 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" +#include "sockaddrtest.h" //=======External Functions This Runner Calls===== extern void setUp(void); @@ -35,7 +39,8 @@ extern void test_IgnoreIPv6Fields(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -48,7 +53,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "socktoa.c"; UnityBegin("socktoa.c"); RUN_TEST(test_IPv4AddressWithPort, 11); RUN_TEST(test_IPv6AddressWithPort, 18); diff --git a/tests/libntp/run-ssl_init.c b/tests/libntp/run-ssl_init.c index c224644c6..0e1648af7 100644 --- a/tests/libntp/run-ssl_init.c +++ b/tests/libntp/run-ssl_init.c @@ -22,11 +22,12 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_MD5KeyTypeWithoutDigestLength(void); extern void test_MD5KeyTypeWithDigestLength(void); extern void test_SHA1KeyTypeWithDigestLength(void); @@ -35,7 +36,8 @@ extern void test_SHA1KeyName(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -48,7 +50,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "ssl_init.c"; UnityBegin("ssl_init.c"); RUN_TEST(test_MD5KeyTypeWithoutDigestLength, 20); RUN_TEST(test_MD5KeyTypeWithDigestLength, 25); diff --git a/tests/libntp/run-statestr.c b/tests/libntp/run-statestr.c index 6679f5fa6..5687faad2 100644 --- a/tests/libntp/run-statestr.c +++ b/tests/libntp/run-statestr.c @@ -22,11 +22,14 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp.h" +#include "ntp_control.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_PeerRestart(void); extern void test_SysUnspecified(void); extern void test_ClockCodeExists(void); @@ -34,7 +37,8 @@ extern void test_ClockCodeUnknown(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -47,7 +51,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "statestr.c"; UnityBegin("statestr.c"); RUN_TEST(test_PeerRestart, 12); RUN_TEST(test_SysUnspecified, 18); diff --git a/tests/libntp/run-strtolfp.c b/tests/libntp/run-strtolfp.c index 0a2912bee..670a9bcf0 100644 --- a/tests/libntp/run-strtolfp.c +++ b/tests/libntp/run-strtolfp.c @@ -22,6 +22,10 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_calendar.h" +#include "lfptest.h" //=======External Functions This Runner Calls===== extern void setUp(void); @@ -36,7 +40,8 @@ extern void test_InvalidChars(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -49,7 +54,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "strtolfp.c"; UnityBegin("strtolfp.c"); RUN_TEST(test_PositiveInteger, 11); RUN_TEST(test_NegativeInteger, 25); diff --git a/tests/libntp/run-timespecops.c b/tests/libntp/run-timespecops.c index e10a28b45..671b3df15 100644 --- a/tests/libntp/run-timespecops.c +++ b/tests/libntp/run-timespecops.c @@ -22,11 +22,16 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_types.h" +#include "ntp_fp.h" +#include "timespecops.h" +#include +#include //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_Helpers1(void); extern void test_Normalise(void); extern void test_SignNoFrac(void); @@ -58,7 +63,8 @@ extern void test_ToString(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -71,7 +77,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "timespecops.c"; UnityBegin("timespecops.c"); RUN_TEST(test_Helpers1, 153); RUN_TEST(test_Normalise, 174); diff --git a/tests/libntp/run-timevalops.c b/tests/libntp/run-timevalops.c index c0089bbb0..fd3fb1925 100644 --- a/tests/libntp/run-timevalops.c +++ b/tests/libntp/run-timevalops.c @@ -22,11 +22,15 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_types.h" +#include "ntp_fp.h" +#include "timevalops.h" +#include //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_Helpers1(void); extern void test_Normalise(void); extern void test_SignNoFrac(void); @@ -58,7 +62,8 @@ extern void test_ToString(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -71,7 +76,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "timevalops.c"; UnityBegin("timevalops.c"); RUN_TEST(test_Helpers1, 157); RUN_TEST(test_Normalise, 178); diff --git a/tests/libntp/run-tstotv.c b/tests/libntp/run-tstotv.c index cf7dd1794..8baf95f1d 100644 --- a/tests/libntp/run-tstotv.c +++ b/tests/libntp/run-tstotv.c @@ -22,6 +22,9 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_fp.h" +#include "timevalops.h" //=======External Functions This Runner Calls===== extern void setUp(void); @@ -32,7 +35,8 @@ extern void test_MicrosecondsRounding(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -45,7 +49,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "tstotv.c"; UnityBegin("tstotv.c"); RUN_TEST(test_Seconds, 9); RUN_TEST(test_MicrosecondsExact, 21); diff --git a/tests/libntp/run-tvtots.c b/tests/libntp/run-tvtots.c index f224199f2..471fb174a 100644 --- a/tests/libntp/run-tvtots.c +++ b/tests/libntp/run-tvtots.c @@ -22,18 +22,22 @@ #include "unity.h" #include #include +#include "config.h" +#include "lfptest.h" +#include "timevalops.h" +#include //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_Seconds(void); extern void test_MicrosecondsRounded(void); extern void test_MicrosecondsExact(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -46,7 +50,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "tvtots.c"; UnityBegin("tvtots.c"); RUN_TEST(test_Seconds, 12); RUN_TEST(test_MicrosecondsRounded, 25); diff --git a/tests/libntp/run-uglydate.c b/tests/libntp/run-uglydate.c index 620092b67..a6d63f52f 100644 --- a/tests/libntp/run-uglydate.c +++ b/tests/libntp/run-uglydate.c @@ -22,16 +22,19 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "ntp_fp.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_ConstantDateTime(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -44,9 +47,8 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "uglydate.c"; UnityBegin("uglydate.c"); - RUN_TEST(test_ConstantDateTime, 10); + RUN_TEST(test_ConstantDateTime, 8); return (UnityEnd()); } diff --git a/tests/libntp/run-vi64ops.c b/tests/libntp/run-vi64ops.c index 1594692f4..e5626b4be 100644 --- a/tests/libntp/run-vi64ops.c +++ b/tests/libntp/run-vi64ops.c @@ -22,18 +22,21 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" +#include "vint64ops.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_ParseVUI64_pos(void); extern void test_ParseVUI64_neg(void); extern void test_ParseVUI64_case(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -46,7 +49,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "vi64ops.c"; UnityBegin("vi64ops.c"); RUN_TEST(test_ParseVUI64_pos, 33); RUN_TEST(test_ParseVUI64_neg, 49); diff --git a/tests/libntp/run-ymd2yd.c b/tests/libntp/run-ymd2yd.c index 42b2aaa58..7952e8bee 100644 --- a/tests/libntp/run-ymd2yd.c +++ b/tests/libntp/run-ymd2yd.c @@ -22,11 +22,12 @@ #include "unity.h" #include #include +#include "config.h" +#include "ntp_stdlib.h" //=======External Functions This Runner Calls===== extern void setUp(void); extern void tearDown(void); -void resetTest(void); extern void test_NonLeapYearFebruary(void); extern void test_NonLeapYearJune(void); extern void test_LeapYearFebruary(void); @@ -34,7 +35,8 @@ extern void test_LeapYearDecember(void); //=======Test Reset Option===== -void resetTest() +void resetTest(void); +void resetTest(void) { tearDown(); setUp(); @@ -47,7 +49,6 @@ char *progname; int main(int argc, char *argv[]) { progname = argv[0]; - Unity.TestFile = "ymd2yd.c"; UnityBegin("ymd2yd.c"); RUN_TEST(test_NonLeapYearFebruary, 9); RUN_TEST(test_NonLeapYearJune, 15); diff --git a/tests/libntp/sockaddrtest.c b/tests/libntp/sockaddrtest.c new file mode 100644 index 000000000..d68beae4a --- /dev/null +++ b/tests/libntp/sockaddrtest.c @@ -0,0 +1,50 @@ + +#include "config.h" +#include "ntp.h" +#include "ntp_stdlib.h" + +sockaddr_u +CreateSockaddr4(const char* address, unsigned int port) { + sockaddr_u s; + s.sa4.sin_family = AF_INET; + s.sa4.sin_addr.s_addr = inet_addr(address); + SET_PORT(&s, port); + + return s; +} + + +int +IsEqual(const sockaddr_u expected, const sockaddr_u actual) { + struct in_addr in; + struct in6_addr in6; + + if (expected.sa.sa_family != actual.sa.sa_family) { + printf("Expected sa_family: %d but got: %d", expected.sa.sa_family, actual.sa.sa_family); + return FALSE; + } + + if (actual.sa.sa_family == AF_INET) { // IPv4 + if (expected.sa4.sin_port == actual.sa4.sin_port && + memcmp(&expected.sa4.sin_addr, &actual.sa4.sin_addr, + sizeof( in )) == 0) { + return TRUE; + } else { + printf("IPv4 comparision failed, expected: %s(%s) but was: %s(%s)",inet_ntoa(expected.sa4.sin_addr), socktoa(&expected), inet_ntoa(actual.sa4.sin_addr),socktoa(&actual)); + return FALSE; + } + } else if (actual.sa.sa_family == AF_INET6) { //IPv6 + if (expected.sa6.sin6_port == actual.sa6.sin6_port && + memcmp(&expected.sa6.sin6_addr, &actual.sa6.sin6_addr, + sizeof(in6)) == 0) { + return TRUE; + } else { + printf("IPv6 comparision failed"); + return FALSE; + } + } else { // Unknown family + printf("Unknown sa_family: %d",actual.sa.sa_family); + return FALSE; + } +} + diff --git a/tests/libntp/sockaddrtest.h b/tests/libntp/sockaddrtest.h index 14d880d0e..8450fb6b2 100644 --- a/tests/libntp/sockaddrtest.h +++ b/tests/libntp/sockaddrtest.h @@ -1,54 +1,13 @@ #ifndef TESTS_SOCKADDRTEST_H #define TESTS_SOCKADDRTEST_H +#include "config.h" #include "ntp.h" #include "ntp_stdlib.h" -sockaddr_u -CreateSockaddr4(const char* address, unsigned int port) { - sockaddr_u s; - s.sa4.sin_family = AF_INET; - s.sa4.sin_addr.s_addr = inet_addr(address); - SET_PORT(&s, port); - - return s; -} - - -int -IsEqual(const sockaddr_u expected, const sockaddr_u actual) { - struct in_addr in; - struct in6_addr in6; - - if (expected.sa.sa_family != actual.sa.sa_family) { - printf("Expected sa_family: %d but got: %d", expected.sa.sa_family, actual.sa.sa_family); - return FALSE; - } - - if (actual.sa.sa_family == AF_INET) { // IPv4 - if (expected.sa4.sin_port == actual.sa4.sin_port && - memcmp(&expected.sa4.sin_addr, &actual.sa4.sin_addr, - sizeof( in )) == 0) { - return TRUE; - } else { - printf("IPv4 comparision failed, expected: %s(%s) but was: %s(%s)",inet_ntoa(expected.sa4.sin_addr), socktoa(&expected), inet_ntoa(actual.sa4.sin_addr),socktoa(&actual)); - return FALSE; - } - } else if (actual.sa.sa_family == AF_INET6) { //IPv6 - if (expected.sa6.sin6_port == actual.sa6.sin6_port && - memcmp(&expected.sa6.sin6_addr, &actual.sa6.sin6_addr, - sizeof(in6)) == 0) { - return TRUE; - } else { - printf("IPv6 comparision failed"); - return FALSE; - } - } else { // Unknown family - printf("Unknown sa_family: %d",actual.sa.sa_family); - return FALSE; - } -} +sockaddr_u CreateSockaddr4(const char* address, unsigned int port); +int IsEqual(const sockaddr_u expected, const sockaddr_u actual); #endif // TESTS_SOCKADDRTEST_H diff --git a/tests/libntp/uglydate.c b/tests/libntp/uglydate.c index fe50b85b8..4b08f2b15 100644 --- a/tests/libntp/uglydate.c +++ b/tests/libntp/uglydate.c @@ -5,6 +5,7 @@ #include "unity.h" +void test_ConstantDateTime(void); void test_ConstantDateTime(void) {