Skip to content

t/re/reg_mesg.t: tests failing under -Uusedl #21829

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jkeenan opened this issue Jan 13, 2024 · 6 comments
Closed

t/re/reg_mesg.t: tests failing under -Uusedl #21829

jkeenan opened this issue Jan 13, 2024 · 6 comments

Comments

@jkeenan
Copy link
Contributor

jkeenan commented Jan 13, 2024

As I followed the discussion in #21750, I was struck by @Leont's comment that, notwithstanding the merging of #21320 last August, some tests were failing on static perls. We apparently don't have any tests of "static perls" in our GH workflow, nor do we have any in our contributed smoke tests. This is what I found today in blead:

$ git describe
v5.39.6-130-g8508c300fd

$ sh ./Configure -des -Dusedevel -Uusedl && make test_prep
[# perl compiles successfully with -Uusedl]

$ cd t;./perl harness re/reg_mesg.t; cd -
re/reg_mesg.t .. 1/? # Failed test 2692 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 2694 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 2696 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 2698 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 2700 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 2702 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 2704 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 2706 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 3286 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 3288 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 3290 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 3292 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 3294 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 3296 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 3298 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
# Failed test 3300 - ... and gave expected number (1) of warnings at re/reg_mesg.t line 903
#      got "0"
# expected "1"
re/reg_mesg.t .. Failed 16/3300 subtests 

Test Summary Report
-------------------
re/reg_mesg.t (Wstat: 0 Tests: 3300 Failed: 16)
  Failed tests:  2692, 2694, 2696, 2698, 2700, 2702, 2704
                2706, 3286, 3288, 3290, 3292, 3294, 3296
                3298, 3300
Files=1, Tests=3300,  0 wallclock secs ( 0.09 usr  0.00 sys +  0.12 cusr  0.00 csys =  0.21 CPU)
Result: FAIL

Peering into the verbose output, I see:

ok 2691 -  /(?<=(p|qq|rrr))/ did not die
not ok 2692 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length positive lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?<=(p|qq|rrr)) <-- HERE / at 
ok 2693 -  /(?<!(p|qq|rrr))/ did not die
not ok 2694 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length negative lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?<!(p|qq|rrr)) <-- HERE / at 
ok 2695 -  /(?| (?=(foo)) | (?<=(foo)|p) )/ did not die
not ok 2696 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length positive lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?| (?=(foo)) | (?<=(foo)|p) ) <-- HERE / at 
ok 2697 -  /(?| (?=(foo)) | (?<=(foo)|p) )/x did not die
not ok 2698 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length positive lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?| (?=(foo)) | (?<=(foo)|p) ) <-- HERE / at 
ok 2699 -  /(?| (?=(foo)) | (?<!(foo)|p) )/ did not die
not ok 2700 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length negative lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?| (?=(foo)) | (?<!(foo)|p) ) <-- HERE / at 
ok 2701 -  /(?| (?=(foo)) | (?<!(foo)|p) )/x did not die
not ok 2702 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length negative lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?| (?=(foo)) | (?<!(foo)|p) ) <-- HERE / at 
ok 2703 -  /(?<!(foo|bop(*ACCEPT)|bar)baz)/ did not die
not ok 2704 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length negative lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?<!(foo|bop(*ACCEPT)|bar)baz) <-- HERE / at 
ok 2705 -  /(?<=(foo|bop(*ACCEPT)|bar)baz)/ did not die
not ok 2706 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length positive lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?<=(foo|bop(*ACCEPT)|bar)baz) <-- HERE / at 
ok 2707 - no warnings 'experimental::re_strict'; use re 'strict'; m/\b*\x{100}/ did not die

...

ok 3285 - no warnings 'experimental::re_strict'; use re 'strict'; /(?<=(p|qq|rrr))/ did not die
not ok 3286 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length positive lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?<=(p|qq|rrr)) <-- HERE / at 
ok 3287 - no warnings 'experimental::re_strict'; use re 'strict'; /(?<!(p|qq|rrr))/ did not die
not ok 3288 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length negative lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?<!(p|qq|rrr)) <-- HERE / at 
ok 3289 - no warnings 'experimental::re_strict'; use re 'strict'; /(?| (?=(foo)) | (?<=(foo)|p) )/ did not die
not ok 3290 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length positive lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?| (?=(foo)) | (?<=(foo)|p) ) <-- HERE / at 
ok 3291 - no warnings 'experimental::re_strict'; use re 'strict'; /(?| (?=(foo)) | (?<=(foo)|p) )/x did not die
not ok 3292 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length positive lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?| (?=(foo)) | (?<=(foo)|p) ) <-- HERE / at 
ok 3293 - no warnings 'experimental::re_strict'; use re 'strict'; /(?| (?=(foo)) | (?<!(foo)|p) )/ did not die
not ok 3294 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length negative lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?| (?=(foo)) | (?<!(foo)|p) ) <-- HERE / at 
ok 3295 - no warnings 'experimental::re_strict'; use re 'strict'; /(?| (?=(foo)) | (?<!(foo)|p) )/x did not die
not ok 3296 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length negative lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?| (?=(foo)) | (?<!(foo)|p) ) <-- HERE / at 
ok 3297 - no warnings 'experimental::re_strict'; use re 'strict'; /(?<!(foo|bop(*ACCEPT)|bar)baz)/ did not die
not ok 3298 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length negative lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?<!(foo|bop(*ACCEPT)|bar)baz) <-- HERE / at 
ok 3299 - no warnings 'experimental::re_strict'; use re 'strict'; /(?<=(foo|bop(*ACCEPT)|bar)baz)/ did not die
not ok 3300 - ... and gave expected number (1) of warnings
# Expected warnings not gotten:
# 	Variable length positive lookbehind with capturing is experimental in regex; marked by <-- HERE in m/(?<=(foo|bop(*ACCEPT)|bar)baz) <-- HERE / at 
1..3300

Questions:

  1. What would it take to get these tests to PASS under -Uusedl?

  2. In the meantime, shouldn't they be TODOed under -Uusedl?

  3. Also in the meantime, shouldn't this limitation of -Uusedl be documented in the "Dynamic Loading" section of INSTALL?

@Leont
Copy link
Contributor

Leont commented Jan 13, 2024

We apparently don't have any tests of "static perls" in our GH workflow, nor do we have any in our contributed smoke tests. This is what I found today in blead:

In fact I discovered it while trying to add such a smoke configurations.

I would suggest this would be a blocker for 5.40

@Leont
Copy link
Contributor

Leont commented Jan 13, 2024

What would it take to get these tests to PASS under -Uusedl?

I suspect only @demerphq knows the answer to that.

@Corion
Copy link

Corion commented Jan 14, 2024

This is fun.

git clean -dfX ; sh ./Configure -des -Dusedevel -Uusedl && make test_prep && cd t && ./perl re/reg_mesg.t

fails as above, but

git clean -dfX ; sh ./Configure -des -Doptimize=-g -Dusedevel -Uusedl && make test_prep && cd t && ./perl re/reg_mesg.t

(as produced by Porting/bisect-runner.pl ) passes.

Fails:

git clean -dfX ; sh ./Configure -des -Doptimize=-O2 -Dusedevel -Uusedl && make test_prep -j8 && cd t && ./perl re/reg_mesg.t

So it might be a linking/naming issue like Nick alluded to on irc

@tonycoz
Copy link
Contributor

tonycoz commented Jan 17, 2024

I believe it's related to #21550 which I'm looking at.

@Leont
Copy link
Contributor

Leont commented Feb 10, 2024

This is actually a duplicate of #21558

@leonerd
Copy link
Contributor

leonerd commented Mar 14, 2024

Closing this as it's a duplicate of #21558 but see over there anyway.

@leonerd leonerd closed this as not planned Won't fix, can't repro, duplicate, stale Mar 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants