docker-coala-base icon indicating copy to clipboard operation
docker-coala-base copied to clipboard

verilator tests fail

Open jayvdb opened this issue 8 years ago • 2 comments

When re-enabling the bear tests disabled in 05fdfb72, only the verilator tests fail.

The Dockerfile does install verilator

=================================== FAILURES ===================================
____________________ VerilogLintBearTest.test_invalid_files ____________________
bear = <VerilogLintBear linter object (wrapping 'verilator') at 0x7f2d3e8d79b0>
args = ('/tmp/tmpmg09rfhx', ['\n', 'module updowncount(R, Clock, L, E, up_down, Q);\n', '  parameter n=8;\n', '  input [n-1:0] R;\n', '  input Clock, L, E, up_down;\n', '  output [n-1:0] Q;\n', ...])
kwargs = {}, bear_output_generator = None
msg = ['Running bear VerilogLintBear...', "Running 'verilator --lint-only /tmp/tmpmg09rfhx'", 'Bear VerilogLintBear failed t...ine 1544, in _execute_child\n    raise child_exception_type(errno_num, err_msg)\nOSError: [Errno 8] Exec format error']
    @contextmanager
    def execute_bear(bear, *args, **kwargs):
        try:
            bear_output_generator = bear.execute(*args, **kwargs)
            assert bear_output_generator is not None, \
>               'Bear returned None on execution\n'
E               AssertionError: Bear returned None on execution

/coala/coalib/testing/LocalBearTestHelper.py:19: AssertionError

During handling of the above exception, another exception occurred:

self = <coalib.testing.LocalBearTestHelper.verify_local_bear.<locals>.LocalBearTest testMethod=test_invalid_files>

    def test_invalid_files(self):
        self.assertIsInstance(invalid_files, (list, tuple))
        for file in invalid_files:
            self.check_validity(self.uut,
                                file.splitlines(keepends=True),
                                filename,
                                valid=False,
                                force_linebreaks=force_linebreaks,
                                create_tempfile=create_tempfile,
>                               tempfile_kwargs=tempfile_kwargs)

/coala/coalib/testing/LocalBearTestHelper.py:199: 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

/coala/coalib/testing/LocalBearTestHelper.py:72: in check_validity
    execute_bear(local_bear, fname, file) as bear_output:
/usr/lib64/python3.5/contextlib.py:59: in __enter__
    return next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

bear = <VerilogLintBear linter object (wrapping 'verilator') at 0x7f2d3e8d79b0>
args = ('/tmp/tmpmg09rfhx', ['\n', 'module updowncount(R, Clock, L, E, up_down, Q);\n', '  parameter n=8;\n', '  input [n-1:0] R;\n', '  input Clock, L, E, up_down;\n', '  output [n-1:0] Q;\n', ...])
kwargs = {}, bear_output_generator = None
msg = ['Running bear VerilogLintBear...', "Running 'verilator --lint-only /tmp/tmpmg09rfhx'", 'Bear VerilogLintBear failed t...ine 1544, in _execute_child\n    raise child_exception_type(errno_num, err_msg)\nOSError: [Errno 8] Exec format error']

    @contextmanager
    def execute_bear(bear, *args, **kwargs):
        try:
            bear_output_generator = bear.execute(*args, **kwargs)
            assert bear_output_generator is not None, \
                'Bear returned None on execution\n'
            yield bear_output_generator
        except Exception as err:
            msg = []
            while not bear.message_queue.empty():
                msg.append(bear.message_queue.get().message)
>           raise AssertionError(str(err) + ' \n' + '\n'.join(msg))

E           AssertionError: Bear returned None on execution
E            
E           Running bear VerilogLintBear...
E           Running 'verilator --lint-only /tmp/tmpmg09rfhx'
E           Bear VerilogLintBear failed to run. Take a look at debug messages (`-V`) for further information.
E           The bear VerilogLintBear raised an exception. If you are the author of this bear, please make sure to catch all exceptions. If not and this error annoys you, you might want to get in contact with the author of this bear.
E           
E           Traceback information is provided below:
E           
E           Traceback (most recent call last):
E             File "/coala/coalib/bears/Bear.py", line 239, in execute
E               result = self.run_bear_from_section(args, kwargs)
E             File "/coala/coalib/bears/Bear.py", line 232, in run_bear_from_section
E               return self.run(*args, **kwargs)
E             File "/coala/coalib/bearlib/abstractions/Linter.py", line 521, in run
E               cwd=self.get_config_dir())
E             File "/coala/coalib/misc/Shell.py", line 103, in run_shell_command
E               with run_interactive_shell_command(command, **kwargs) as p:
E             File "/usr/lib64/python3.5/contextlib.py", line 59, in __enter__
E               return next(self.gen)
E             File "/coala/coalib/misc/Shell.py", line 70, in run_interactive_shell_command
E               process = Popen(command, **args)
E             File "/usr/lib64/python3.5/subprocess.py", line 950, in __init__
E               restore_signals, start_new_session)
E             File "/usr/lib64/python3.5/subprocess.py", line 1544, in _execute_child
E               raise child_exception_type(errno_num, err_msg)
E           OSError: [Errno 8] Exec format error

/coala/coalib/testing/LocalBearTestHelper.py:25: AssertionError

Same occurs for valid files.

VerilogLintBearTest.test_valid_files

jayvdb avatar Nov 27 '16 07:11 jayvdb

The executable verilator script looks like this:

$ head /bin/verilator
: # -*-Mode: perl;-*- use perl, wherever it is
eval 'exec perl -wS $0 ${1+"$@"}'
  if 0;
...

jayvdb avatar Nov 27 '16 11:11 jayvdb

I rebuild the RPM from source, and it has the same result. Also, all tests pass in the RPM test phase. :/

jayvdb avatar Jan 03 '17 06:01 jayvdb