blob: 13171fa30fba81730b5e26f8dc22cf2201850ed2 [file] [log] [blame]
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# pylint: disable=module-missing-docstring,class-missing-docstring
import os
import subprocess
import power_manager_prefs_gen_schema
from chromite.lib import cros_test_lib
THIS_DIR = os.path.dirname(__file__)
SCHEMA_FILE = os.path.join(THIS_DIR, 'power_manager_prefs_schema.yaml')
class MainTest(cros_test_lib.TempDirTestCase):
def testSchemaMatches(self):
output_file = os.path.join(self.tempdir, 'output')
power_manager_prefs_gen_schema.Main(output=output_file)
changed = subprocess.run( # pylint: disable=subprocess-run-check
['diff', SCHEMA_FILE, output_file]).returncode != 0
regen_cmd = ('To regenerate the schema, run:\n'
'\tpython3 -m cros_config_host.power_manager_prefs_gen_schema '
'-o %s ' % SCHEMA_FILE)
if changed:
print(regen_cmd)
self.fail('Powerd prefs schema does not match C++ prefs source.')
if __name__ == '__main__':
cros_test_lib.main(module=__name__)