Miklos Balint | 470919c | 2018-05-22 17:51:29 +0200 | [diff] [blame] | 1 | #------------------------------------------------------------------------------- |
| 2 | # Copyright (c) 2018, Arm Limited. All rights reserved. |
| 3 | # |
| 4 | # SPDX-License-Identifier: BSD-3-Clause |
| 5 | # |
| 6 | #------------------------------------------------------------------------------- |
| 7 | |
Miklos Balint | 470919c | 2018-05-22 17:51:29 +0200 | [diff] [blame] | 8 | from keyword_substitution import keyword_substitute, log_print, Verbosity |
| 9 | |
Miklos Balint | 3a05c9d | 2018-05-31 09:31:27 +0200 | [diff] [blame^] | 10 | try: |
| 11 | import yaml |
| 12 | except ImportError as e: |
| 13 | print e, "To install it, type:" |
| 14 | print "pip install PyYAML" |
| 15 | exit(1) |
| 16 | |
Miklos Balint | 470919c | 2018-05-22 17:51:29 +0200 | [diff] [blame] | 17 | VERBOSITY = Verbosity.warning |
| 18 | log_print(Verbosity.debug, "Setting verbosity to", VERBOSITY, verbosity=VERBOSITY) |
Miklos Balint | 470919c | 2018-05-22 17:51:29 +0200 | [diff] [blame] | 19 | |
| 20 | def testsuite(): |
Miklos Balint | 3a05c9d | 2018-05-31 09:31:27 +0200 | [diff] [blame^] | 21 | with open('keyword_substitution_test_vectors.yaml', 'r') as test_vectors_file: |
| 22 | test_yaml = yaml.load(test_vectors_file) |
| 23 | test_list = test_yaml["test_list"] |
| 24 | |
| 25 | for tcidx, test in enumerate(test_list): |
| 26 | expected = ''.join(test["expected"]) |
Miklos Balint | 470919c | 2018-05-22 17:51:29 +0200 | [diff] [blame] | 27 | print |
| 28 | log_print(Verbosity.debug, "template:", test["template"]) |
| 29 | log_print(Verbosity.debug, "db:", test["db"]) |
| 30 | outlist = keyword_substitute(test["db"], test["template"], "report") |
| 31 | log_print(Verbosity.debug, outlist) |
| 32 | outstring = "" |
| 33 | for outline in outlist: |
| 34 | outstring += ''.join(outline) + "\n" |
| 35 | log_print(Verbosity.info, "Got:") |
| 36 | log_print(Verbosity.info, outstring) |
Miklos Balint | 3a05c9d | 2018-05-31 09:31:27 +0200 | [diff] [blame^] | 37 | if outstring == expected: |
Miklos Balint | 470919c | 2018-05-22 17:51:29 +0200 | [diff] [blame] | 38 | print "Test", tcidx, "PASSED" |
| 39 | test["result"] = "PASSED" |
| 40 | else: |
| 41 | print "Test", tcidx, "FAILED, expected:" |
Miklos Balint | 3a05c9d | 2018-05-31 09:31:27 +0200 | [diff] [blame^] | 42 | print expected |
Miklos Balint | 470919c | 2018-05-22 17:51:29 +0200 | [diff] [blame] | 43 | test["result"] = "FAILED" |
| 44 | |
| 45 | print |
| 46 | print "Test summary:" |
Miklos Balint | 3a05c9d | 2018-05-31 09:31:27 +0200 | [diff] [blame^] | 47 | for idx, test in enumerate(test_list): |
Miklos Balint | 470919c | 2018-05-22 17:51:29 +0200 | [diff] [blame] | 48 | print "Test", idx, test["result"] |
| 49 | |
| 50 | def main(): |
| 51 | testsuite() |
| 52 | |
| 53 | if __name__ == "__main__": |
| 54 | main() |