Closed Bug 274820 Opened 20 years ago Closed 17 years ago

enable all.sh to succeed on systems without gmake

Categories

(NSS :: Test, enhancement, P3)

3.9.3
x86
Linux
enhancement

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: jason.m.reid, Assigned: slavomir.katuscak+mozilla)

Details

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113

Change some of the variable assignments in all.sh from foo is assigned to
foo is assigned if not already having a value e.g. OBJDIR=`(cd $COMMON; gmake
objdir_name)` to OBJDIR=${OBJDIR:-`(cd $COMMON; gmake objdir_name)`}.

Changing OBJDIR, OS_ARCH, DLL_PREFIX, and DLL_SUFFIX to the second format
would allow cross platform testing e.g. making sure the Solaris 8 binaries work
correctly on Solaris 10 or x86 binaries work on a native AMD64 system.

I estimate four lines would be changed.

Reproducible: Always
Status: NEW → ASSIGNED
Assignee: bishakhabanerjee → jason.m.reid
Status: ASSIGNED → NEW
The change would actually be in mozilla/security/nss/tests/common/init.sh.
Proposed code changes:
mace[svbld]:/tmp> diff init.sh update.sh
153,156c153,156
<       OBJDIR=${OBJDIR:-`(cd $COMMON; gmake objdir_name)`}
<       OS_ARCH=${OS_ARCH:-`(cd $COMMON; gmake os_arch)`}
<       DLL_PREFIX=${DLL_PREFIX:-`(cd $COMMON; gmake dll_prefix)`}
<       DLL_SUFFIX=${DLL_SUFFIX:-`(cd $COMMON; gmake dll_suffix)`}
---
>     OBJDIR=`(cd $COMMON; gmake objdir_name)`
>     OS_ARCH=`(cd $COMMON; gmake os_arch)`
>     DLL_PREFIX=`(cd $COMMON; gmake dll_prefix)`
>     DLL_SUFFIX=`(cd $COMMON; gmake dll_suffix)`
Status: NEW → ASSIGNED
QA Contact: bishakhabanerjee → jason.m.reid
Attached patch proposed patchSplinter Review
Attachment #191775 - Flags: superreview+
Attachment #191775 - Flags: review+
Attachment #191775 - Flags: superreview?(wtchang)
Attachment #191775 - Flags: superreview+
Attachment #191775 - Flags: review?(julien.pierre.track)
Attachment #191775 - Flags: review+
Comment on attachment 191775 [details] [diff] [review]
proposed patch

I believe this patch will allow you to do what you need, but some improvements
can be made.

1. I think you will always want the DLL_PREFIX, DLL_SUFFIX, and OS_ARCH to be
the same as on the original build. Unless you can think of situations where
that's not true, you can remove the 3 lines that allow their override.

2. You only need to be able to override OBJDIR, in order to test binaries on a
different OS revision than the machines they were built on.

You can change OBJDIR by just overriding OBJDIR completely as you did. But in
this case, the caller is responsible for completely reconstructing OBJDIR - and
figuring out DBG vs OPT, 64 vs regular, etc. This is a waste, as most other
parameters that affect OBJDIR can already be controlled by environment
variables (eg. BUILD_OPT and USE_64), and the logic is already in coreconf .

If the only thing that's needed (as I believe, please correct me if I'm wrong)
is to change the OS revision to match the one of the build machine, you could
simply override OS_RELEASE and pass that to the gmake objdir_name command - eg.
"gmake objdir_name OS_RELEASE=5.8". You would probably want to have the caller
set OS_RELEASE, have your script check if it's set, and if so, pass it in to
gmake.
Attachment #191775 - Flags: review?(julien.pierre.track) → review-
I wanted avoid calling gmake entirely. I do not want to have
to depend on working with the build environment to run
the tests. Removing the gmake dependency makes the job
of running tests on new machines easier. Not all systems 
ship with gmake installed.
Assignee: jason.m.reid → nobody
Status: ASSIGNED → NEW
QA Contact: jason.m.reid → test
Status: NEW → ASSIGNED
Priority: -- → P3
Comment on attachment 191775 [details] [diff] [review]
proposed patch

Julien, please re-review this patch in light of 
the objective (first articulated after your 
previous review) of obviating gmake on test systems.
Attachment #191775 - Flags: review- → review?
Slavo, in your opinion, how desirable is this proposed change?
Assignee: nobody → slavomir.katuscak
Status: ASSIGNED → NEW
Summary: all.sh type variable assignment override → enable all.sh to succeed on systems without gmake
Attachment #191775 - Flags: review? → review?(julien.pierre.boogz)
Nelson, I see it more like nice to have feature, but I'm not sure if anyone will ever use it. We have gmake installed on all testing machines and if someone wants to run these tests on machine without gmake, he will most probably install it after first error message that gmake was not found.
Comment on attachment 191775 [details] [diff] [review]
proposed patch

I agree with Slavo, we don't need to fix this. And I think anyone running the tests externally would want to have gmake as well. It's not like it's hard to get.
It's probably easier to get it than to set the 4 variables here. I suggest WONTFIX.
Attachment #191775 - Flags: review?(julien.pierre.boogz) → review-
Nelson, do you agree with WONTFIX ?
yes
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → WONTFIX
Attachment #191775 - Flags: superreview?(wtc)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: