Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1225)

Unified Diff: src/trusted/validator_arm/dgen_test_output.py

Issue 12095039: Add testing of generated (ARM) baseline decoders using hand-written decoders. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/trusted/validator_arm/dgen_test_output.py
===================================================================
--- src/trusted/validator_arm/dgen_test_output.py (revision 10678)
+++ src/trusted/validator_arm/dgen_test_output.py (working copy)
@@ -375,6 +375,7 @@
#include "native_client/src/trusted/validator_arm/baseline_classes.h"
#include "native_client/src/trusted/validator_arm/named_class_decoder.h"
#include "%(FILENAME_BASE)s_actuals.h"
+
#include "%(FILENAME_BASE)s_named_bases.h"
"""
@@ -752,6 +753,7 @@
#include "gtest/gtest.h"
#include "native_client/src/trusted/validator_arm/actual_vs_baseline.h"
+#include "native_client/src/trusted/validator_arm/baseline_vs_baseline.h"
#include "native_client/src/trusted/validator_arm/actual_classes.h"
#include "native_client/src/trusted/validator_arm/baseline_classes.h"
#include "native_client/src/trusted/validator_arm/inst_classes_testers.h"
@@ -893,6 +895,17 @@
}
"""
+TEST_FUNCTION_BASELINE_VS_BASELINE="""
+// %(row_comment)s
+TEST_F(%(decoder_name)sTests,
+ BvB_%(decoder_tester)s_Test%(test_pattern)s) {
+ %(decoder_tester)s old_baseline_tester;
+ Named%(gen_decoder)s gen_baseline;
+ BaselineVsBaselineTester b_vs_b_tester(gen_baseline, old_baseline_tester);
+ b_vs_b_tester.Test("%(pattern)s");
+}
+"""
+
TEST_CC_FOOTER="""
} // namespace nacl_arm_test
@@ -918,6 +931,9 @@
decoder = dgen_baselines.AddBaselinesToDecoder(decoder, tables)
+ baselines = cl_args.get('test-base')
+ if not baselines: baselines = []
+
decoder = _decoder_restricted_to_tables(decoder, tables)
values = {
@@ -929,7 +945,7 @@
_generate_constraint_testers(decoder, values, out)
_generate_rule_testers(decoder, values, out)
out.write(TEST_HARNESS % values)
- _generate_test_patterns(decoder, values, out)
+ _generate_test_patterns_with_baseline_tests(decoder, values, out, baselines)
out.write(TEST_CC_FOOTER % values)
def _filter_test_action(action, with_patterns, with_rules):
@@ -1091,7 +1107,14 @@
new_decoder.set_class_defs(decoder.get_class_defs())
return new_decoder
-def _generate_test_patterns(decoder, values, out):
+def _generate_test_patterns_with_baseline_tests(
+ decoder, values, out, baseline_test_tables):
+ _generate_test_patterns(decoder, values, out, False)
+ _generate_test_patterns(
+ _decoder_restricted_to_tables(decoder, baseline_test_tables),
+ values, out, True)
+
+def _generate_test_patterns(decoder, values, out, add_baseline_tests):
"""Generates a test function for each row having a pattern associated
with the table row.
"""
@@ -1101,7 +1124,11 @@
_install_row_cases(r, values)
row = _row_filter_interesting_patterns(r)
action = _install_test_row(row, decoder, values, with_patterns=True)
- if action.actual() == action.baseline():
+ if add_baseline_tests:
+ if action.find('generated_baseline'):
+ values['gen_decoder'] = action.find('generated_baseline')
+ out.write(TEST_FUNCTION_BASELINE_VS_BASELINE % values)
+ elif action.actual() == action.baseline():
out.write(TEST_FUNCTION_BASELINE % values)
else:
out.write(TEST_FUNCTION_ACTUAL_VS_BASELINE % values)

Powered by Google App Engine
This is Rietveld 408576698