@@ -35,6 +35,9 @@ def check_xcov(label, args, expected_output=""):
3535
3636tmp = Wdir ("tmp_" )
3737
38+ pkg_spec = os .path .join (".." , "src" , "pkg.ads" )
39+ pkg_body = os .path .join (".." , "src" , "pkg.adb" )
40+
3841thistest .log ("== Checkpoint creation ==" )
3942cov_args = build_and_run (
4043 gprsw = GPRswitches (
@@ -55,12 +58,9 @@ def check_xcov(label, args, expected_output=""):
5558 + [
5659 "--save-checkpoint" ,
5760 "trace.ckpt" ,
58- "--subprograms" ,
59- f"{ os .path .join ('..' , 'src' , 'pkg.ads' )} :4" ,
60- "--subprograms" ,
61- f"{ os .path .join ('..' , 'src' , 'pkg.adb' )} :10" ,
62- "--subprograms" ,
63- f"{ os .path .join ('..' , 'src' , 'pkg.adb' )} :12" ,
61+ f"--subprograms={ pkg_spec } :4" ,
62+ f"--subprograms={ pkg_body } :10" ,
63+ f"--subprograms={ pkg_body } :12" ,
6464 ],
6565 expected_output = (
6666 ""
@@ -115,9 +115,7 @@ def check_xcov(label, args, expected_output=""):
115115 # Case 2: line number is not a number
116116 thistest .log ("== Bad line number ==" )
117117 xcov (
118- cov_args + [
119- "--subprograms" , f"{ os .path .join ('..' , 'src' , 'pkg.ads' )} :b" ,
120- ],
118+ cov_args + ["--subprograms" , f"{ pkg_spec } :b" ],
121119 out = "xcov-wrong2.txt" ,
122120 register_failure = False ,
123121 )
@@ -138,7 +136,23 @@ def check_xcov(label, args, expected_output=""):
138136 what = "unexpected coverage output" ,
139137 regexp = (
140138 r".*Error when parsing --subprograms argument dumb-file-name:4:"
141- r".*dumb-file-name does not exist"
139+ r" unknown source file"
140+ ),
141+ actual = contents_of ("xcov-wrong3.txt" ),
142+ )
143+
144+ # Case 4: scope does not exist
145+ thistest .log ("== No such scope ==" )
146+ xcov (
147+ cov_args + [f"--subprograms={ pkg_body } :14" ],
148+ out = "xcov-wrong3.txt" ,
149+ register_failure = False ,
150+ )
151+ thistest .fail_if_no_match (
152+ what = "unexpected coverage output" ,
153+ regexp = (
154+ f".*Error when parsing --subprograms argument { pkg_body } :14:"
155+ " unknown subprogram"
142156 ),
143157 actual = contents_of ("xcov-wrong3.txt" ),
144158 )
0 commit comments