blob: 21ebc17d395e421684395b5f5781c64f1198afe6 [file] [log] [blame]
Miklos Balint470919c2018-05-22 17:51:29 +02001#-------------------------------------------------------------------------------
2# Copyright (c) 2018, Arm Limited. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
Miklos Balint470919c2018-05-22 17:51:29 +02008from keyword_substitution import keyword_substitute, log_print, Verbosity
9
Miklos Balint3a05c9d2018-05-31 09:31:27 +020010try:
11 import yaml
12except ImportError as e:
13 print e, "To install it, type:"
14 print "pip install PyYAML"
15 exit(1)
16
Miklos Balint470919c2018-05-22 17:51:29 +020017VERBOSITY = Verbosity.warning
18log_print(Verbosity.debug, "Setting verbosity to", VERBOSITY, verbosity=VERBOSITY)
Miklos Balint470919c2018-05-22 17:51:29 +020019
20def testsuite():
Miklos Balint3a05c9d2018-05-31 09:31:27 +020021 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 Balint470919c2018-05-22 17:51:29 +020027 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 Balint3a05c9d2018-05-31 09:31:27 +020037 if outstring == expected:
Miklos Balint470919c2018-05-22 17:51:29 +020038 print "Test", tcidx, "PASSED"
39 test["result"] = "PASSED"
40 else:
41 print "Test", tcidx, "FAILED, expected:"
Miklos Balint3a05c9d2018-05-31 09:31:27 +020042 print expected
Miklos Balint470919c2018-05-22 17:51:29 +020043 test["result"] = "FAILED"
44
45 print
46 print "Test summary:"
Miklos Balint3a05c9d2018-05-31 09:31:27 +020047 for idx, test in enumerate(test_list):
Miklos Balint470919c2018-05-22 17:51:29 +020048 print "Test", idx, test["result"]
49
50def main():
51 testsuite()
52
53if __name__ == "__main__":
54 main()