66import pytest
77import time
88
9- from testutils import cppcheck , assert_cppcheck
9+ from testutils import cppcheck , assert_cppcheck , copy_and_prepare_cppcheck
1010
1111
1212def __test_missing_include (tmpdir , use_j ):
@@ -865,6 +865,10 @@ def test_build_dir_j_memleak(tmpdir): #12111
865865def test_premium_with_relative_path (tmpdir ):
866866 product_name = 'Cppcheck Premium ' + str (time .time ())
867867
868+ test_file = os .path .join (tmpdir , 'test.cpp' )
869+ with open (test_file , 'wt' ) as f :
870+ f .write ('int main() {}' )
871+
868872 test_cfg = tmpdir .join ('cppcheck.cfg' )
869873 with open (test_cfg , 'wt' ) as f :
870874 f .write ("""
@@ -875,13 +879,48 @@ def test_premium_with_relative_path(tmpdir):
875879 }
876880 """ .replace ('NAME' , product_name ))
877881
878- args = ['--premium=misra-c++-2008' , 'test.c' ]
882+ args = ['--premium=misra-c++-2008' , test_file ]
879883
880- exitcode , _ , stderr = cppcheck (args , None , True , tmpdir )
881- assert exitcode == 0
884+
885+ cppcheck_exe = copy_and_prepare_cppcheck (tmpdir )
886+
887+ exitcode , _ , stderr = cppcheck (args , None , True , cppcheck_exe )
882888 assert stderr == ''
889+ assert exitcode == 0
883890
884- exitcode , stdout , stderr = cppcheck (['--version' ], None , True , tmpdir )
891+
892+ exitcode , stdout , stderr = cppcheck (['--version' ], None , True , cppcheck_exe )
885893 assert stdout == product_name + '\n '
886894 assert stderr == ''
887895 assert exitcode == 0
896+
897+ os .remove (test_cfg )
898+
899+ exitcode , stdout , stderr = cppcheck (['--premium=misra-c++-2008' ], None , cppcheck_exe )
900+ assert stderr == ''
901+ assert stdout == 'cppcheck: error: unrecognized command line option: "--premium=misra-c++-2008".\n '
902+ assert exitcode == 1
903+
904+ exitcode , stdout , stderr = cppcheck (['--version' ], None , cppcheck_exe )
905+ assert stderr == ''
906+ assert stdout == 'Cppcheck 2.13 dev' + '\n '
907+ assert exitcode == 0
908+
909+ def test_premium_with_relative_path2 (tmpdir ):
910+ product_name = 'Cppcheck Premium ' + str (time .time ())
911+
912+ test_file = os .path .join (tmpdir , 'test.cpp' )
913+ with open (test_file , 'wt' ) as f :
914+ f .write ('int main() {}' )
915+
916+ args = ['--premium=misra-c++-2008' , test_file ]
917+
918+ exitcode , stdout , stderr = cppcheck (args , None )
919+ assert stderr == ''
920+ assert stdout == 'cppcheck: error: unrecognized command line option: "--premium=misra-c++-2008".\n '
921+ assert exitcode == 1
922+
923+ exitcode , stdout , stderr = cppcheck (['--version' ], None )
924+ assert stdout == 'Cppcheck 2.13 dev' + '\n '
925+ assert stderr == ''
926+ assert exitcode == 0
0 commit comments