summaryrefslogtreecommitdiffstats
path: root/tinyusb/test/vendor/ceedling/plugins/raw_output_report/lib/raw_output_report.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tinyusb/test/vendor/ceedling/plugins/raw_output_report/lib/raw_output_report.rb')
-rwxr-xr-xtinyusb/test/vendor/ceedling/plugins/raw_output_report/lib/raw_output_report.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/tinyusb/test/vendor/ceedling/plugins/raw_output_report/lib/raw_output_report.rb b/tinyusb/test/vendor/ceedling/plugins/raw_output_report/lib/raw_output_report.rb
new file mode 100755
index 00000000..014e6771
--- /dev/null
+++ b/tinyusb/test/vendor/ceedling/plugins/raw_output_report/lib/raw_output_report.rb
@@ -0,0 +1,41 @@
+require 'ceedling/plugin'
+require 'ceedling/constants'
+
+class RawOutputReport < Plugin
+ def setup
+ @log_paths = {}
+ end
+
+ def post_test_fixture_execute(arg_hash)
+ output = strip_output(arg_hash[:shell_result][:output])
+ write_raw_output_log(arg_hash, output)
+ end
+
+ private
+
+ def strip_output(raw_output)
+ output = ""
+ raw_output.each_line do |line|
+ next if line =~ /^\n$/
+ next if line =~ /^.*:\d+:.*:(IGNORE|PASS|FAIL)/
+ return output if line =~/^-----------------------\n$/
+ output << line
+ end
+ end
+ def write_raw_output_log(arg_hash, output)
+ logging = generate_log_path(arg_hash)
+ @ceedling[:file_wrapper].write(logging[:path], output , logging[:flags]) unless logging.nil?
+ end
+
+ def generate_log_path(arg_hash)
+ f_name = File.basename(arg_hash[:result_file], '.pass')
+ base_path = File.join(PROJECT_BUILD_ARTIFACTS_ROOT, arg_hash[:context].to_s)
+ file_path = File.join(base_path, f_name + '.log')
+
+ if @ceedling[:file_wrapper].exist?(base_path)
+ return { path: file_path, flags: 'w' }
+ end
+
+ nil
+ end
+end