@@ -402,3 +402,63 @@ def test_all_variants_reject_signed_number(repo: Path, number: str) -> None:
402402 )
403403
404404 assert bash .returncode == ps .returncode == py .returncode == 1
405+
406+
407+ @requires_bash
408+ @pytest .mark .skipif (not HAS_POWERSHELL , reason = "no PowerShell available" )
409+ @pytest .mark .parametrize ("timestamp" , [False , True ], ids = ["numbered" , "timestamp" ])
410+ def test_all_variants_treat_empty_number_as_omitted (
411+ repo : Path , timestamp : bool
412+ ) -> None :
413+ bash_args = ["--json" , "--dry-run" , "--number" , "" ]
414+ ps_args = ["-Json" , "-DryRun" , "-Number" , "" ]
415+ py_args = ["--json" , "--dry-run" , "--number" , "" ]
416+ if timestamp :
417+ bash_args .append ("--timestamp" )
418+ ps_args .append ("-Timestamp" )
419+ py_args .append ("--timestamp" )
420+ bash_args .append ("x" )
421+ ps_args .append ("x" )
422+ py_args .append ("x" )
423+
424+ bash = run (bash_cmd (repo , SCRIPT , * bash_args ), repo )
425+ ps = run (ps_cmd (repo , SCRIPT , * ps_args ), repo )
426+ py = run (py_cmd (repo , SCRIPT , * py_args ), repo )
427+
428+ assert bash .returncode == ps .returncode == py .returncode == 0
429+ assert bash .stderr == ps .stderr == py .stderr == ""
430+ if not timestamp :
431+ assert json_stdout (bash ) == json_stdout (ps ) == json_stdout (py )
432+
433+
434+ @requires_bash
435+ @pytest .mark .skipif (not HAS_POWERSHELL , reason = "no PowerShell available" )
436+ @pytest .mark .parametrize (
437+ ("number" , "returncode" ),
438+ [
439+ (str (2 ** 63 - 1 ), 0 ),
440+ (str (2 ** 63 ), 1 ),
441+ ],
442+ ids = ["int64_max" , "int64_overflow" ],
443+ )
444+ def test_all_variants_share_int64_number_range (
445+ repo : Path , number : str , returncode : int
446+ ) -> None :
447+ bash = run (
448+ bash_cmd (repo , SCRIPT , "--json" , "--dry-run" , "--number" , number , "x" ),
449+ repo ,
450+ )
451+ ps = run (
452+ ps_cmd (repo , SCRIPT , "-Json" , "-DryRun" , "-Number" , number , "x" ),
453+ repo ,
454+ )
455+ py = run (
456+ py_cmd (repo , SCRIPT , "--json" , "--dry-run" , "--number" , number , "x" ),
457+ repo ,
458+ )
459+
460+ assert bash .returncode == ps .returncode == py .returncode == returncode
461+ if returncode == 0 :
462+ assert json_stdout (bash ) == json_stdout (ps ) == json_stdout (py )
463+ else :
464+ assert bash .stdout == ps .stdout == py .stdout == ""
0 commit comments