Lines Matching refs:output

78     File.open(output_file, 'w') do |output|
79 create_header(output, used_mocks, testfile_includes)
80 create_externs(output, tests, used_mocks)
81 create_mock_management(output, used_mocks)
82 create_suite_setup_and_teardown(output)
83 create_reset(output, used_mocks)
84 create_main(output, input_file, tests, used_mocks)
170 def create_header(output, mocks, testfile_includes=[])
171 output.puts('/* AUTOGENERATED FILE. DO NOT EDIT. */')
172 create_runtest(output, mocks)
173 output.puts("\n//=======Automagically Detected Files To Include=====")
174 output.puts("#include \"#{@options[:framework].to_s}.h\"")
175 output.puts('#include "cmock.h"') unless (mocks.empty?)
177 output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
179 output.puts('#include <setjmp.h>')
180 output.puts('#include <stdio.h>')
181 output.puts('#include "CException.h"') if @options[:plugins].include?(:cexception)
185 output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
188 output.puts("#include \"#{mock.gsub('.h','')}.h\"")
191 output.puts('')
192 output.puts('int GlobalExpectCount;')
193 output.puts('int GlobalVerifyOrder;')
194 output.puts('char* GlobalOrderError;')
199 def create_externs(output, tests, mocks)
200 output.puts("\n//=======External Functions This Runner Calls=====")
201 output.puts("extern void #{@options[:setup_name]}(void);")
202 output.puts("extern void #{@options[:teardown_name]}(void);")
205 output.puts("extern void #{test[:test]}(#{test[:call] || 'void'});")
207 output.puts('')
211 def create_mock_management(output, mocks)
213 output.puts("\n//=======Mock Management=====")
214 output.puts("static void CMock_Init(void)")
215 output.puts("{")
217 output.puts(" GlobalExpectCount = 0;")
218 output.puts(" GlobalVerifyOrder = 0;")
219 output.puts(" GlobalOrderError = NULL;")
223 output.puts(" #{mock_clean}_Init();")
225 output.puts("}\n")
227 output.puts("static void CMock_Verify(void)")
228 output.puts("{")
231 output.puts(" #{mock_clean}_Verify();")
233 output.puts("}\n")
235 output.puts("static void CMock_Destroy(void)")
236 output.puts("{")
239 output.puts(" #{mock_clean}_Destroy();")
241 output.puts("}\n")
246 def create_suite_setup_and_teardown(output)
248 output.puts("\n//=======Suite Setup=====")
249 output.puts("static int suite_setup(void)")
250 output.puts("{")
251 output.puts(@options[:suite_setup])
252 output.puts("}")
255 output.puts("\n//=======Suite Teardown=====")
256 output.puts("static int suite_teardown(int num_failures)")
257 output.puts("{")
258 output.puts(@options[:suite_teardown])
259 output.puts("}")
264 def create_runtest(output, used_mocks)
268 output.puts("\n//=======Test Runner Used To Run Each Test Below=====")
269 output.puts("#define RUN_TEST_NO_ARGS") if @options[:use_param_tests]
270 output.puts("#define RUN_TEST(TestFunc, TestLineNum#{va_args1}) \\")
271 output.puts("{ \\")
272 output.puts(" Unity.CurrentTestName = #TestFunc#{va_args2.empty? ? '' : " \"(\" ##{va_args2} \")\""}; \\")
273 output.puts(" Unity.CurrentTestLineNumber = TestLineNum; \\")
274 output.puts(" Unity.NumberOfTests++; \\")
275 output.puts(" CMock_Init(); \\") unless (used_mocks.empty?)
276 output.puts(" if (TEST_PROTECT()) \\")
277 output.puts(" { \\")
278 output.puts(" CEXCEPTION_T e; \\") if cexception
279 output.puts(" Try { \\") if cexception
280 output.puts(" #{@options[:setup_name]}(); \\")
283 output.puts(" TestFunc(#{va_args2}); \\")
285 output.puts(" } Catch(e) { TEST_ASSERT_EQUAL_HEX32_MESSAGE(CEXCEPTION_NONE, e, \"Unhandled Exception!\"); } \\") if cexception
286 output.puts(" } \\")
288 output.puts(" if (TEST_PROTECT() && !TEST_IS_IGNORED) \\")
289 output.puts(" { \\")
290 output.puts(" #{@options[:teardown_name]}(); \\")
291 output.puts(" CMock_Verify(); \\") unless (used_mocks.empty?)
293 output.puts(" } \\")
294 output.puts(" CMock_Destroy(); \\") unless (used_mocks.empty?)
295 output.puts(" UnityConcludeTest(); \\")
296 output.puts("}\n")
300 def create_reset(output, used_mocks)
301 output.puts("\n//=======Test Reset Option=====")
302 output.puts("void resetTest(void);")
303 output.puts("void resetTest(void)")
305 output.puts("{")
306 output.puts(" CMock_Verify();") unless (used_mocks.empty?)
307 output.puts(" CMock_Destroy();") unless (used_mocks.empty?)
308 output.puts(" #{@options[:teardown_name]}();")
310 output.puts(" CMock_Init();") unless (used_mocks.empty?)
311 output.puts(" #{@options[:setup_name]}();")
313 output.puts("}")
317 def create_main(output, filename, tests, used_mocks)
318 output.puts("\nchar const *progname;\n")
319 output.puts("\n\n//=======MAIN=====")
321 output.puts("int main(int argc, char *argv[])")
322 output.puts("{")
323 output.puts(" progname = argv[0];\n")
330 output.puts(" suite_setup();") unless @options[:suite_setup].nil?
332 output.puts(" UnityBegin(\"#{filename}\");")
337 output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]}, RUN_TEST_NO_ARGS);")
339 test[:args].each {|args| output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]}, #{args});")}
343 tests.each { |test| output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]});") }
345 output.puts()
346 output.puts(" CMock_Guts_MemFreeFinal();") unless used_mocks.empty?
347 output.puts(" return #{@options[:suite_teardown].nil? ? "" : "suite_teardown"}(UnityEnd());")
348 output.puts("}")
377 puts ["\nusage: ruby #{__FILE__} (files) (options) input_test_file (output)",
379 " output - this is the name of the runner file to generate",