summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/EFI/Firmware/IntelFsp2Pkg/Tools/Tests/test_yaml.py
blob: a71073ba6d5f42c7a90e173fbfe394f2c27475d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# @file
#  Split a file into two pieces at the request offset.
#
#  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

# Import Modules
import unittest
import tempfile
import os
import shutil
import struct as st
import filecmp

import os, sys
currentdir = os.path.dirname(os.path.realpath(__file__))
parentdir = os.path.dirname(currentdir)
sys.path.append(parentdir)
import FspDscBsf2Yaml

YamlHeaderLineLength = 10
HdrFileHeaderLineLength = 32
BsfFileHeaderLineLength = 19

def GenFileWithoutHdr(inputfile, numLineToStrip):
    yaml_file = open(inputfile, "r")
    lines = yaml_file.readlines()
    yaml_file.close()
    del lines[:numLineToStrip]

    noHdrOutputFileName = "no-header-" + inputfile
    stripped_file = open(noHdrOutputFileName, "w")
    for line in lines:
        stripped_file.write(line)
    stripped_file.close()
    return noHdrOutputFileName

class TestFspScripts(unittest.TestCase):
    def test_generateFspHeader_fromDsc(self):
        # Generate HEADER
        cmd = '{} {} HEADER {} {} {}'.format(
            'python',
            '..\GenCfgOpt.py',
            'QemuFspPkg.dsc',
            '.',
            "")
        os.system(cmd)
        noHdrOutputFileName = GenFileWithoutHdr("FspUpd.h", HdrFileHeaderLineLength)
        self.assertTrue(filecmp.cmp(noHdrOutputFileName,
                  'ExpectedFspUpd.h'))

    def test_generateFspsHeader_fromDsc(self):
        noHdrOutputFileName = GenFileWithoutHdr("FspsUpd.h", HdrFileHeaderLineLength)
        self.assertTrue(filecmp.cmp(noHdrOutputFileName,
                  'ExpectedFspsUpd.h'))

    def test_generateFsptHeader_fromDsc(self):
        noHdrOutputFileName = GenFileWithoutHdr("FsptUpd.h", HdrFileHeaderLineLength)
        self.assertTrue(filecmp.cmp(noHdrOutputFileName,
                  'ExpectedFsptUpd.h'))

    def test_generateFspmHeader_fromDsc(self):
        noHdrOutputFileName = GenFileWithoutHdr("FspmUpd.h", HdrFileHeaderLineLength)
        self.assertTrue(filecmp.cmp(noHdrOutputFileName,
                  'ExpectedFspmUpd.h'))

    def test_generateBsf_fromDsc(self):
        # Generate BSF
        cmd = '{} {} GENBSF {} {} {}'.format(
            'python',
            '..\GenCfgOpt.py',
            'QemuFspPkg.dsc',
            '.',
            "Output.bsf")
        os.system(cmd)
        noHdrOutputFileName = GenFileWithoutHdr("Output.bsf", BsfFileHeaderLineLength)
        self.assertTrue(filecmp.cmp(noHdrOutputFileName,
                  'ExpectedOutput.bsf'))

    def test_generateYaml_fromDsc(self):
        # Generate YAML
        cmd = '{} {} {} {}'.format(
            'python',
            '..\FspDscBsf2Yaml.py',
            'QemuFspPkg.dsc',
            "Output.yaml")
        os.system(cmd)
        noHdrOutputFileName = GenFileWithoutHdr("Output.yaml", YamlHeaderLineLength)
        self.assertTrue(filecmp.cmp(noHdrOutputFileName,
                  'ExpectedOutput.yaml'))

if __name__ == '__main__':
    unittest.main()