# -----------------------------------------------------------------------------
|
# Copyright (c) 2014-2020, PyInstaller Development Team.
|
#
|
# Distributed under the terms of the GNU General Public License (version 2
|
# or later) with exception for distributing the bootloader.
|
#
|
# The full license is in the file COPYING.txt, distributed with this software.
|
#
|
# SPDX-License-Identifier: (GPL-2.0-or-later WITH Bootloader-exception)
|
# -----------------------------------------------------------------------------
|
|
import os
|
|
fnames_to_track = [
|
'lextab.py',
|
'yacctab.py',
|
]
|
|
|
def fnames_found():
|
return [fname for fname in fnames_to_track if os.path.isfile(fname)]
|
|
|
if __name__ == '__main__':
|
|
# Confirm no files exist before we start.
|
if fnames_found():
|
raise SystemExit('FAIL: Files present before test.')
|
|
# Minimal invocation that generates the files.
|
from pycparser import c_parser
|
parser = c_parser.CParser()
|
|
# Were the files generated?
|
fnames_generated = fnames_found()
|
|
# Try to remove them, if so.
|
for fname in fnames_generated:
|
try:
|
os.unlink(fname)
|
except OSError:
|
pass
|
|
# Did we fail at deleting any file?
|
fnames_left = fnames_found()
|
|
# Fail if any file was generated.
|
if fnames_generated:
|
if fnames_left:
|
raise SystemExit('FAIL: Files generated and not removed.')
|
else:
|
raise SystemExit('FAIL: Files generated but removed.')
|
|
# Success.
|