Opened 3 years ago

Closed 2 years ago

#1789 closed defect (fixed)

md5 egg doesn't run tests on the correct CHICKEN

Reported by: sjamaan Owned by: Kon Lovett
Priority: major Milestone: someday
Component: extensions Version: 5.2.0
Keywords: Cc: Kon Lovett
Estimated difficulty: medium


The md5 egg's test suite will fail if you call chicken-install -test md5 when there is no csi binary in $PATH. I tried this just now while testing 5.3.0rc4 after installing it into a temporary directory.

This means if the CHICKEN binaries *are* in $PATH but uses PROGRAM_PREFIX or PROGRAM_SUFFIX it won't work either.

Worse, if the csi in $PATH is a different one from the one corresponding to the chicken-install being called, the results may be misleading - either failure if the one installed there is buggy, or passing tests if the one installed there works even if the egg that was just installed is buggy.

I notice that there's a fallback to use $CHICKEN_CSI and $CHICKEN_CSC, but it appears that chicken-install only passes those options to the build script, not the test script.

run.scm is already loaded from the correct csi, so for the interpreter I'd suggest just loading/including the test suite. But perhaps it's a good idea if chicken-install would export those same environment variables when invoking the test suite... And/or have some way to figure out how to call the chicken binaries by exposing them from a module? (but that would be backwards incompatible, so the test suite would need to deal with older CHICKEN versions gracefully anyway).

Change History (3)

comment:1 Changed 3 years ago by sjamaan

Cc: Kon Lovett added; klovett removed
Owner: changed from klovett to Kon Lovett

comment:2 Changed 3 years ago by Kon Lovett

egg version 4.1.2 has a possible solution

comment:3 Changed 2 years ago by Kon Lovett

Resolution: fixed
Status: assignedclosed

when env var not defined uses (pathname-directory (executable-pathname)) as the binary directory for csi/csc. (version 4.1.2)

Note: See TracTickets for help on using tickets.