summaryrefslogtreecommitdiffstats
path: root/testing/talos/tests/test_talosconfig.py
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/talos/tests/test_talosconfig.py
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/talos/tests/test_talosconfig.py')
-rw-r--r--testing/talos/tests/test_talosconfig.py155
1 files changed, 155 insertions, 0 deletions
diff --git a/testing/talos/tests/test_talosconfig.py b/testing/talos/tests/test_talosconfig.py
new file mode 100644
index 000000000..85b6c953f
--- /dev/null
+++ b/testing/talos/tests/test_talosconfig.py
@@ -0,0 +1,155 @@
+from talos import talosconfig
+from talos.configuration import YAML
+import unittest
+import json
+
+
+# globals
+ffox_path = 'test/path/to/firefox'
+command_args = [ffox_path,
+ '-profile',
+ 'pathtoprofile',
+ '-tp',
+ 'pathtotpmanifest',
+ '-tpchrome',
+ '-tpmozafterpaint',
+ '-tpnoisy',
+ '-rss',
+ '-tpcycles',
+ '1',
+ '-tppagecycles',
+ '1']
+with open("test_talosconfig_browser_config.json") as json_browser_config:
+ browser_config = json.load(json_browser_config)
+with open("test_talosconfig_test_config.json") as json_test_config:
+ test_config = json.load(json_test_config)
+
+
+class TestWriteConfig(unittest.TestCase):
+ def test_writeConfigFile(self):
+ obj = dict(some=123, thing='456', other=789)
+
+ self.assertEquals(
+ json.loads(talosconfig.writeConfigFile(obj, ('some', 'thing'))),
+ dict(some=123, thing='456')
+ )
+
+ # test without keys
+ self.assertEquals(
+ json.loads(talosconfig.writeConfigFile(obj, None)),
+ obj
+ )
+
+
+class TalosConfigUnitTest(unittest.TestCase):
+ """
+ A class inheriting from unittest.TestCase to test the generateTalosConfig function.
+ """
+
+ def validate(self, var1, var2):
+ # Function to check whether the output generated is correct or not.
+ # If the output generated is not correct then specify the expected output to be generated.
+ if var1 == var2:
+ return 1
+ else:
+ print("input '%s' != expected '%s'" % (var1, var2))
+
+ def test_talosconfig(self):
+ # This function stimulates a call to generateTalosConfig in talosconfig.py .
+ # It is then tested whether the output generated is correct or not.
+ # ensure that the output generated in yaml file is as expected or not.
+ yaml = YAML()
+ content = yaml.read(browser_config['bcontroller_config'])
+ self.validate(content['command'],
+ "test/path/to/firefox " +
+ "-profile " +
+ "pathtoprofile " +
+ "-tp " +
+ "pathtotpmanifest " +
+ "-tpchrome " +
+ "-tpmozafterpaint " +
+ "-tpnoisy " +
+ "-rss " +
+ "-tpcycles " +
+ "1 " +
+ "-tppagecycles " +
+ "1")
+ self.validate(content['child_process'], "plugin-container")
+ self.validate(content['process'], "firefox.exe")
+ self.validate(content['browser_wait'], 5)
+ self.validate(content['test_timeout'], 1200)
+ self.validate(content['browser_log'], "browser_output.txt")
+ self.validate(content['browser_path'], "test/path/to/firefox")
+ self.validate(content['error_filename'], "pathtoerrorfile")
+ self.validate(content['xperf_path'],
+ "C:/Program Files/Microsoft Windows Performance Toolkit/xperf.exe")
+ self.validate(content['buildid'], 20131205075310)
+ self.validate(content['sourcestamp'], "39faf812aaec")
+ self.validate(content['repository'], "http://hg.mozilla.org/releases/mozilla-release")
+ self.validate(content['title'], "qm-pxp01")
+ self.validate(content['testname'], "tp5n")
+ self.validate(content['xperf_providers'], ['PROC_THREAD',
+ 'LOADER',
+ 'HARD_FAULTS',
+ 'FILENAME',
+ 'FILE_IO',
+ 'FILE_IO_INIT'])
+ self.validate(content['xperf_user_providers'],
+ ['Mozilla Generic Provider', 'Microsoft-Windows-TCPIP'])
+ self.validate(content['xperf_stackwalk'],
+ ['FileCreate', 'FileRead', 'FileWrite', 'FileFlush', 'FileClose'])
+ self.validate(content['processID'], "None")
+ self.validate(content['approot'], "test/path/to")
+
+ def test_errors(self):
+ # Tests if errors are correctly raised.
+
+ # Testing that error is correctly raised or not if xperf_path is missing
+ browser_config_copy = browser_config.copy()
+ test_config_copy = test_config.copy()
+ del browser_config_copy['xperf_path']
+ talosconfig.generateTalosConfig(command_args, browser_config_copy, test_config_copy)
+ yaml = YAML()
+ content = yaml.read(browser_config['bcontroller_config'])
+
+ with self.assertRaises(KeyError):
+ self.validate(content['xperf_path'],
+ "C:/Program Files/Microsoft Windows Performance Toolkit/xperf.exe")
+
+ # Test to see if keyerror is raised or not for calling testname when xperf_path is missing
+ with self.assertRaises(KeyError):
+ self.validate(content['testname'], "tp5n")
+
+ # Testing that error is correctly raised or not if xperf_providers is missing
+ browser_config_copy = browser_config.copy()
+ test_config_copy = test_config.copy()
+ del test_config_copy['xperf_providers']
+ talosconfig.generateTalosConfig(command_args, browser_config_copy, test_config_copy)
+ yaml = YAML()
+ content = yaml.read(browser_config['bcontroller_config'])
+
+ # Checking keyerror when calling xperf_providers
+ with self.assertRaises(KeyError):
+ self.validate(content['xperf_providers'], ['PROC_THREAD', 'LOADER', 'HARD_FAULTS',
+ 'FILENAME', 'FILE_IO', 'FILE_IO_INIT'])
+
+ # Checking keyerror when calling xperf_user_providers when xperf_providers is missing
+ with self.assertRaises(KeyError):
+ self.validate(content['xperf_user_providers'],
+ ['Mozilla Generic Provider', 'Microsoft-Windows-TCPIP'])
+
+ # Checking keyerror when calling xperf_stackwalk when xperf_providers is missing
+ with self.assertRaises(KeyError):
+ self.validate(content['xperf_stackwalk'],
+ ['FileCreate', 'FileRead', 'FileWrite', 'FileFlush', 'FileClose'])
+
+ # Checking keyerror when calling processID when xperf_providers is missing
+ with self.assertRaises(KeyError):
+ self.validate(content['processID'], "None")
+
+ # Checking keyerror when calling approot when xperf_providers is missing
+ with self.assertRaises(KeyError):
+ self.validate(content['approot'], "test/path/to")
+
+if __name__ == '__main__':
+ unittest.main()