diff options
author | relyea%netscape.com <devnull@localhost> | 2001-02-28 01:21:11 +0000 |
---|---|---|
committer | relyea%netscape.com <devnull@localhost> | 2001-02-28 01:21:11 +0000 |
commit | f6c57cb277d7d4d56de857cbce3228827f206fe5 (patch) | |
tree | d913bf02bc26c1735bb68ee99526abece67149a3 | |
parent | 7ea0af612b2a7e294152086d194a839d425af605 (diff) | |
parent | cad266c12da8dd7c637015c1cf753dfad9ed1f49 (diff) | |
download | nss-hg-f6c57cb277d7d4d56de857cbce3228827f206fe5.tar.gz |
Add '-p' to specify a dbprefix.
Move the Tempfile created on input to /tmp so the code works in directories
that aren't writeable.
Fix the code to remove the Tempfile when done.
Use SECU_ConfigureDir so that we get the same defaultdb as other tools.
-rw-r--r-- | security/coreconf/jdk.mk | 3 | ||||
-rw-r--r-- | security/coreconf/rules.mk | 1 | ||||
-rw-r--r-- | security/nss/cmd/pk12util/pk12util.c | 68 | ||||
-rw-r--r-- | security/nss/lib/nss/nssinit.c | 9 | ||||
-rw-r--r-- | security/nss/lib/pk11wrap/pk11db.c | 8 | ||||
-rw-r--r-- | security/nss/lib/pk11wrap/pk11slot.c | 55 | ||||
-rw-r--r-- | security/nss/lib/pk11wrap/secmodt.h | 1 | ||||
-rw-r--r-- | security/nss/lib/softoken/pkcs11.c | 157 | ||||
-rw-r--r-- | security/nss/lib/softoken/pkcs11c.c | 72 | ||||
-rw-r--r-- | security/nss/lib/softoken/pkcs11t.h | 10 | ||||
-rwxr-xr-x | security/nss/tests/cert/cert.sh | 291 | ||||
-rwxr-xr-x | security/nss/tests/core_watch | 16 | ||||
-rw-r--r-- | security/nss/tests/header | 1392 | ||||
-rwxr-xr-x | security/nss/tests/mksymlinks | 36 | ||||
-rwxr-xr-x | security/nss/tests/nssqa | 379 | ||||
-rwxr-xr-x | security/nss/tests/path_uniq | 72 | ||||
-rwxr-xr-x | security/nss/tests/qa_stat | 639 | ||||
-rwxr-xr-x | security/nss/tests/qaclean | 79 | ||||
-rw-r--r-- | security/nss/tests/set_environment | 165 |
19 files changed, 1994 insertions, 1459 deletions
diff --git a/security/coreconf/jdk.mk b/security/coreconf/jdk.mk index 044529c09..518eea533 100644 --- a/security/coreconf/jdk.mk +++ b/security/coreconf/jdk.mk @@ -256,6 +256,7 @@ ifeq ($(OS_ARCH), AIX) JAVA_ARCH = aix INCLUDES += -I$(JAVA_HOME)/include + INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH) # (3) specify "linker" information JAVA_CPU = aix @@ -384,7 +385,7 @@ endif # define a default JDK classpath ifeq ($(JDK_CLASSPATH),) - JDK_CLASSPATH = "$(JAVA_DESTPATH)$(PATH_SEPARATOR)$(JAVA_SOURCEPATH)$(PATH_SEPARATOR)$(JAVA_CLASSES)" + JDK_CLASSPATH = '$(JAVA_DESTPATH)$(PATH_SEPARATOR)$(JAVA_SOURCEPATH)$(PATH_SEPARATOR)$(JAVA_CLASSES)' endif # by default, override CLASSPATH environment variable using the JDK classpath option with $(JDK_CLASSPATH) diff --git a/security/coreconf/rules.mk b/security/coreconf/rules.mk index 6db182104..8d27188ed 100644 --- a/security/coreconf/rules.mk +++ b/security/coreconf/rules.mk @@ -397,6 +397,7 @@ $(RES): $(RESNAME) endif $(MAPFILE): $(LIBRARY_NAME).def + @$(MAKE_OBJDIR) ifeq ($(OS_ARCH),SunOS) grep -v ';-' $(LIBRARY_NAME).def | \ sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@ diff --git a/security/nss/cmd/pk12util/pk12util.c b/security/nss/cmd/pk12util/pk12util.c index 1e3f1b003..6916627b7 100644 --- a/security/nss/cmd/pk12util/pk12util.c +++ b/security/nss/cmd/pk12util/pk12util.c @@ -49,9 +49,10 @@ static void Usage(char *progName) { #define FPS PR_fprintf(PR_STDERR, - FPS "Usage: %s -i importfile [-d certdir] [-h tokenname]\n", progName); + FPS "Usage: %s -i importfile [-d certdir] [-p dbprefix] [-h tokenname]\n", + progName); FPS "\t\t [-k slotpwfile | -K slotpw] [-w p12filepwfile | -W p12filepw]\n"); - FPS "Usage: %s -o exportfile -n certname [-d certdir] [-h tokenname]\n", progName); + FPS "Usage: %s -o exportfile -n certname [-d certdir] [-p dbprefix]\n", progName); FPS "\t\t [-k slotpwfile | -K slotpw] [-w p12filepwfile | -W p12filepw]\n"); exit(PK12UERR_USAGE); } @@ -98,7 +99,7 @@ p12u_DestroyExportFileInfo(p12uContext **exp_ptr, PRBool removeFile) if((*exp_ptr)->filename != NULL) { if(removeFile) { - PR_Free((*exp_ptr)->filename); + PR_Delete((*exp_ptr)->filename); } PR_Free((*exp_ptr)->filename); } @@ -147,9 +148,33 @@ p12u_CreateTemporaryDigestFile(void) PR_SetError(SEC_ERROR_NO_MEMORY, 0); return NULL; } +#if defined(_WIN32) || defined(_WINDOWS) || defined(XP_OS2) + tmpdir = getenv("TMP"); + if (!tmpdir) + tmpdir = getenv("TMPDIR"); + if (!tmpdir) + tmpdir = getenv("TEMP"); + if (!tmpdir) + tmpdir = "."; + len = strlen(tmpdir); + filename = PORT_Alloc(len+sizeof(TEMPFILE)+2); + if (filename == NULL) { + PR_SetError(SEC_ERROR_NO_MEMORY, 0); + p12u_DestroyExportFileInfo(&p12cxt, PR_FALSE); + return NULL; + } + strcpy(filename, tmpdir); + len = strlen(filename); + last = tmpdir[len - 1]; + if ((last != '/') && (last != '\\')) { + strcat(filename,"\\"); + } + strcat(filename,TEMPFILE); +#else + p12cxt->filename = strdup("/tmp/Pk12uTemp"); +#endif - p12cxt->filename = strdup("Pk12uTemp"); - if(!p12cxt->filename) { + if (!p12cxt->filename) { PR_SetError(SEC_ERROR_NO_MEMORY, 0); p12u_DestroyExportFileInfo(&p12cxt, PR_FALSE); return NULL; @@ -203,6 +228,7 @@ p12u_DigestClose(void *arg, PRBool removeFile) p12cxt->file = NULL; if(removeFile) { + PR_Delete(p12cxt->filename); PR_Free(p12cxt->filename); p12cxt->filename = NULL; } @@ -620,6 +646,7 @@ loser: SECITEM_ZfreeItem(pwitem, PR_TRUE); } + return rv; } @@ -686,6 +713,18 @@ P12U_ExportPKCS12Object(char *nn, char *outfile, return; } + if (!cert->slot) { + fprintf(stderr, "%s: cert does not have a slot.\n", progName); + pk12uErrno = PK12UERR_FINDCERTBYNN; + goto loser; + } + if (P12U_InitSlot(cert->slot, slotPw) != SECSuccess) { + fprintf(stderr, "%s: Failed to authenticate to \"%s\".\n", + progName, PK11_GetSlotName(cert->slot)); + pk12uErrno = PK12UERR_PK11GETSLOT; + goto loser; + } + /* Password to use for PKCS12 file. */ pwitem = P12U_GetP12FilePassword(PR_TRUE, p12FilePw); if(!pwitem) { @@ -791,13 +830,13 @@ p12u_EnableAllCiphers() } static PRUintn -P12U_Init(char *dir) +P12U_Init(char *dir, char *dbprefix) { SECStatus rv; PK11_SetPasswordFunc(SECU_GetModulePassword); PR_Init(PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 1); - rv = NSS_InitReadWrite(dir); + rv = NSS_Initialize(dir,dbprefix,dbprefix,"secmod.db",0); if (rv != SECSuccess) { SECU_PrintPRandOSError(progName); exit(-1); @@ -822,7 +861,8 @@ enum { opt_Nickname, opt_Export, opt_P12FilePWFile, - opt_P12FilePW + opt_P12FilePW, + opt_DBPrefix }; static secuCommandFlag pk12util_options[] = @@ -836,7 +876,8 @@ static secuCommandFlag pk12util_options[] = { /* opt_Nickname */ 'n', PR_TRUE, 0, PR_FALSE }, { /* opt_Export */ 'o', PR_TRUE, 0, PR_FALSE }, { /* opt_P12FilePWFile */ 'w', PR_TRUE, 0, PR_FALSE }, - { /* opt_P12FilePW */ 'W', PR_TRUE, 0, PR_FALSE } + { /* opt_P12FilePW */ 'W', PR_TRUE, 0, PR_FALSE }, + { /* opt_DBPrefix */ 'p', PR_TRUE, 0, PR_FALSE } }; int @@ -849,6 +890,7 @@ main(int argc, char **argv) char *slotname = NULL; char *import_file = NULL; char *export_file = NULL; + char *dbprefix = ""; SECStatus rv; secuCommand pk12util; @@ -899,7 +941,13 @@ main(int argc, char **argv) slotPw.data = PL_strdup(pk12util.options[opt_SlotPW].arg); } - P12U_Init(pk12util.options[opt_CertDir].arg); + if (pk12util.options[opt_CertDir].activated) { + SECU_ConfigDirectory(pk12util.options[opt_CertDir].arg); + } + if (pk12util.options[opt_DBPrefix].activated) { + dbprefix = pk12util.options[opt_DBPrefix].arg; + } + P12U_Init(SECU_ConfigDirectory(NULL),dbprefix); if (pk12util.options[opt_Import].activated) { diff --git a/security/nss/lib/nss/nssinit.c b/security/nss/lib/nss/nssinit.c index fb1ccdf12..d450fdb41 100644 --- a/security/nss/lib/nss/nssinit.c +++ b/security/nss/lib/nss/nssinit.c @@ -374,6 +374,10 @@ NSS_Shutdown(void) SECKEY_SetDefaultKeyDB(NULL); } + +extern const char __nss_base_rcsid[]; +extern const char __nss_base_sccsid[]; + PRBool NSS_VersionCheck(const char *importedVersion) { @@ -388,6 +392,9 @@ NSS_VersionCheck(const char *importedVersion) */ int vmajor = 0, vminor = 0, vpatch = 0; const char *ptr = importedVersion; + volatile char c; /* force a reference that won't get optimized away */ + + c = __nss_base_rcsid[0] + __nss_base_sccsid[0]; while (isdigit(*ptr)) { vmajor = 10 * vmajor + *ptr - '0'; @@ -423,3 +430,5 @@ NSS_VersionCheck(const char *importedVersion) } return PR_TRUE; } + + diff --git a/security/nss/lib/pk11wrap/pk11db.c b/security/nss/lib/pk11wrap/pk11db.c index 899b72143..4e5ab5706 100644 --- a/security/nss/lib/pk11wrap/pk11db.c +++ b/security/nss/lib/pk11wrap/pk11db.c @@ -109,7 +109,7 @@ SECMODModuleList *SECMOD_NewModuleListElement(void) { static unsigned long internalFlags = SECMOD_RSA_FLAG|SECMOD_DSA_FLAG| SECMOD_RC2_FLAG| SECMOD_RC4_FLAG|SECMOD_DES_FLAG|SECMOD_RANDOM_FLAG| SECMOD_SHA1_FLAG|SECMOD_MD5_FLAG|SECMOD_MD2_FLAG|SECMOD_SSL_FLAG| - SECMOD_TLS_FLAG; + SECMOD_TLS_FLAG|SECMOD_AES_FLAG; /* create a Internal module */ SECMODModule *SECMOD_NewInternal(void) { @@ -118,7 +118,7 @@ SECMODModule *SECMOD_NewInternal(void) { { 1, SECMOD_RSA_FLAG|SECMOD_DSA_FLAG|SECMOD_RC2_FLAG| SECMOD_RC4_FLAG|SECMOD_DES_FLAG|SECMOD_RANDOM_FLAG| SECMOD_SHA1_FLAG|SECMOD_MD5_FLAG|SECMOD_MD2_FLAG| - SECMOD_SSL_FLAG|SECMOD_TLS_FLAG, -1, 30, 0 }; + SECMOD_SSL_FLAG|SECMOD_TLS_FLAG|SECMOD_AES_FLAG, -1, 30, 0 }; intern = SECMOD_NewModule(); if (intern == NULL) { @@ -128,7 +128,7 @@ SECMODModule *SECMOD_NewInternal(void) { /* * make this module an internal module */ - intern->commonName = "Netscape Internal PKCS #11 Module"; + intern->commonName = "NSS Internal PKCS #11 Module"; intern->internal = PR_TRUE; intern->slotInfoCount = 1; intern->slotInfo = &internSlotInfo; @@ -149,7 +149,7 @@ SECMODModule *SECMOD_GetFIPSInternal(void) { * make this module a FIPS internal module */ intern->slotInfo[0].slotID = 3; /* FIPS slot */ - intern->commonName = "Netscape Internal FIPS PKCS #11 Module"; + intern->commonName = "NSS Internal FIPS PKCS #11 Module"; intern->isFIPS = PR_TRUE; return (intern); diff --git a/security/nss/lib/pk11wrap/pk11slot.c b/security/nss/lib/pk11wrap/pk11slot.c index 8693771d3..571177438 100644 --- a/security/nss/lib/pk11wrap/pk11slot.c +++ b/security/nss/lib/pk11wrap/pk11slot.c @@ -68,6 +68,7 @@ PK11DefaultArrayEntry PK11_DefaultArray[] = { { "RC2", SECMOD_RC2_FLAG, CKM_RC2_CBC }, { "RC4", SECMOD_RC4_FLAG, CKM_RC4 }, { "DES", SECMOD_DES_FLAG, CKM_DES_CBC }, + { "AES", SECMOD_AES_FLAG, CKM_AES_CBC }, { "RC5", SECMOD_RC5_FLAG, CKM_RC5_CBC }, { "SHA-1", SECMOD_SHA1_FLAG, CKM_SHA_1 }, { "MD5", SECMOD_MD5_FLAG, CKM_MD5 }, @@ -84,7 +85,8 @@ int num_pk11_default_mechanisms = sizeof(PK11_DefaultArray) / sizeof(PK11_Defaul * These slotlists are lists of modules which provide default support for * a given algorithm or mechanism. */ -static PK11SlotList pk11_desSlotList, +static PK11SlotList pk11_aesSlotList, + pk11_desSlotList, pk11_rc4SlotList, pk11_rc2SlotList, pk11_rc5SlotList, @@ -123,6 +125,8 @@ static int pk11_MechEntrySize = 0; CK_MECHANISM_TYPE wrapMechanismList[] = { CKM_DES3_ECB, CKM_CAST5_ECB, + CKM_AES_ECB, + CKM_CAST5_ECB, CKM_DES_ECB, CKM_KEY_WRAP_LYNKS, CKM_IDEA_ECB, @@ -1148,6 +1152,7 @@ pk11_freeSlotList(PK11SlotList *list) SECStatus PK11_InitSlotLists(void) { + pk11_initSlotList(&pk11_aesSlotList); pk11_initSlotList(&pk11_desSlotList); pk11_initSlotList(&pk11_rc4SlotList); pk11_initSlotList(&pk11_rc2SlotList); @@ -1168,6 +1173,7 @@ PK11_InitSlotLists(void) void PK11_DestroySlotLists(void) { + pk11_freeSlotList(&pk11_aesSlotList); pk11_freeSlotList(&pk11_desSlotList); pk11_freeSlotList(&pk11_rc4SlotList); pk11_freeSlotList(&pk11_rc2SlotList); @@ -1195,6 +1201,9 @@ PK11_GetSlotList(CK_MECHANISM_TYPE type) return NULL; #endif switch (type) { + case CKM_AES_CBC: + case CKM_AES_ECB: + return &pk11_aesSlotList; case CKM_DES_CBC: case CKM_DES_ECB: case CKM_DES3_ECB: @@ -1402,6 +1411,7 @@ PK11_VerifyMechanism(PK11SlotInfo *slot,PK11SlotInfo *intern, unsigned char encRef[8]; int outLenTest,outLenRef; int key_size = 0; + PRBool verify = PR_FALSE; SECStatus rv; if ((mech == CKM_RC2_CBC) || (mech == CKM_RC2_ECB) || (mech == CKM_RC4)) { @@ -1440,7 +1450,7 @@ PK11_VerifyMechanism(PK11SlotInfo *slot,PK11SlotInfo *intern, if (outLenTest != outLenRef) goto loser; if (PORT_Memcmp(encTest, encRef, outLenTest) != 0) goto loser; - return PR_TRUE; + verify = PR_TRUE; loser: if (test) PK11_DestroyContext(test,PR_TRUE); @@ -1449,7 +1459,7 @@ loser: if (reference) PK11_DestroyContext(reference,PR_TRUE); if (param) SECITEM_FreeItem(param,PR_TRUE); - return PR_FALSE; + return verify; } /* @@ -1872,7 +1882,7 @@ pk11_IsPresentCertLoad(PK11SlotInfo *slot, PRBool loadCerts) /* removable slots have a flag that says they are present */ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot); if (PK11_GETTAB(slot)->C_GetSlotInfo(slot->slotID,&slotInfo) != CKR_OK) { - if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot); + if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot); return PR_FALSE; } if ((slotInfo.flags & CKF_TOKEN_PRESENT) == 0) { @@ -2532,6 +2542,13 @@ CK_MECHANISM_TYPE PK11_GetKeyType(CK_MECHANISM_TYPE type,unsigned long len) { switch (type) { + case CKM_AES_ECB: + case CKM_AES_CBC: + case CKM_AES_MAC: + case CKM_AES_MAC_GENERAL: + case CKM_AES_CBC_PAD: + case CKM_AES_KEY_GEN: + return CKK_AES; case CKM_DES_ECB: case CKM_DES_CBC: case CKM_DES_MAC: @@ -2689,6 +2706,12 @@ CK_MECHANISM_TYPE PK11_GetKeyGen(CK_MECHANISM_TYPE type) { switch (type) { + case CKM_AES_ECB: + case CKM_AES_CBC: + case CKM_AES_MAC: + case CKM_AES_MAC_GENERAL: + case CKM_AES_CBC_PAD: + return CKM_AES_KEY_GEN; case CKM_DES_ECB: case CKM_DES_CBC: case CKM_DES_MAC: @@ -2885,6 +2908,9 @@ PK11_GetBlockSize(CK_MECHANISM_TYPE type,SECItem *params) case CKM_SKIPJACK_CFB16: case CKM_SKIPJACK_CFB8: return 4; + case CKM_AES_ECB: + case CKM_AES_CBC: + case CKM_AES_CBC_PAD: case CKM_BATON_ECB128: case CKM_BATON_CBC128: case CKM_BATON_COUNTER: @@ -2919,6 +2945,7 @@ int PK11_GetIVLength(CK_MECHANISM_TYPE type) { switch (type) { + case CKM_AES_ECB: case CKM_DES_ECB: case CKM_DES3_ECB: case CKM_RC2_ECB: @@ -2958,6 +2985,9 @@ PK11_GetIVLength(CK_MECHANISM_TYPE type) case CKM_CAST3_CBC_PAD: case CKM_CAST5_CBC_PAD: return 8; + case CKM_AES_CBC: + case CKM_AES_CBC_PAD: + return 16; case CKM_SKIPJACK_CBC64: case CKM_SKIPJACK_ECB64: case CKM_SKIPJACK_OFB64: @@ -3008,6 +3038,7 @@ PK11_ParamFromIV(CK_MECHANISM_TYPE type,SECItem *iv) param->data = NULL; param->len = 0; switch (type) { + case CKM_AES_ECB: case CKM_DES_ECB: case CKM_DES3_ECB: case CKM_RSA_PKCS: @@ -3071,6 +3102,7 @@ PK11_ParamFromIV(CK_MECHANISM_TYPE type,SECItem *iv) param->data = (unsigned char *) rc5_params; param->len = sizeof(CK_RC5_PARAMS); break; + case CKM_AES_CBC: case CKM_DES_CBC: case CKM_DES3_CBC: case CKM_IDEA_CBC: @@ -3078,6 +3110,7 @@ PK11_ParamFromIV(CK_MECHANISM_TYPE type,SECItem *iv) case CKM_CAST_CBC: case CKM_CAST3_CBC: case CKM_CAST5_CBC: + case CKM_AES_CBC_PAD: case CKM_DES_CBC_PAD: case CKM_DES3_CBC_PAD: case CKM_IDEA_CBC_PAD: @@ -3134,6 +3167,7 @@ PK11_IVFromParam(CK_MECHANISM_TYPE type,SECItem *param,int *len) *len = 0; switch (type) { + case CKM_AES_ECB: case CKM_DES_ECB: case CKM_DES3_ECB: case CKM_RSA_PKCS: @@ -3158,6 +3192,7 @@ PK11_IVFromParam(CK_MECHANISM_TYPE type,SECItem *param,int *len) rc5_cbc_params = (CK_RC5_CBC_PARAMS *) param->data; *len = rc5_cbc_params->ulIvLen; return rc5_cbc_params->pIv; + case CKM_AES_CBC: case CKM_DES_CBC: case CKM_DES3_CBC: case CKM_IDEA_CBC: @@ -3339,7 +3374,8 @@ loser: /* Generate a mechaism param from a type, and iv. */ SECItem * -PK11_ParamFromAlgid(SECAlgorithmID *algid) { +PK11_ParamFromAlgid(SECAlgorithmID *algid) +{ CK_RC2_CBC_PARAMS *rc2_params = NULL; CK_RC2_PARAMS *rc2_ecb_params = NULL; CK_RC5_CBC_PARAMS *rc5_params_cbc; @@ -3490,6 +3526,7 @@ PK11_ParamFromAlgid(SECAlgorithmID *algid) { rv = SECSuccess; switch (type) { case CKM_RC4: + case CKM_AES_ECB: case CKM_DES_ECB: case CKM_DES3_ECB: case CKM_IDEA_ECB: @@ -3506,6 +3543,7 @@ PK11_ParamFromAlgid(SECAlgorithmID *algid) { mech->len = 0; break; } + case CKM_AES_CBC: case CKM_DES_CBC: case CKM_DES3_CBC: case CKM_IDEA_CBC: @@ -3513,6 +3551,7 @@ PK11_ParamFromAlgid(SECAlgorithmID *algid) { case CKM_CAST_CBC: case CKM_CAST3_CBC: case CKM_CAST5_CBC: + case CKM_AES_CBC_PAD: case CKM_DES_CBC_PAD: case CKM_DES3_CBC_PAD: case CKM_IDEA_CBC_PAD: @@ -3665,6 +3704,7 @@ PK11_GenerateNewParam(CK_MECHANISM_TYPE type, PK11SymKey *key) { rv = SECSuccess; switch (type) { case CKM_RC4: + case CKM_AES_ECB: case CKM_DES_ECB: case CKM_DES3_ECB: case CKM_IDEA_ECB: @@ -3725,6 +3765,7 @@ PK11_GenerateNewParam(CK_MECHANISM_TYPE type, PK11SymKey *key) { mech->len = 0; break; } + case CKM_AES_CBC: case CKM_DES_CBC: case CKM_DES3_CBC: case CKM_IDEA_CBC: @@ -3796,6 +3837,7 @@ PK11_ParamToAlgid(SECOidTag algTag, SECItem *param, rv = SECSuccess; switch (type) { case CKM_RC4: + case CKM_AES_ECB: case CKM_DES_ECB: case CKM_DES3_ECB: case CKM_IDEA_ECB: @@ -3876,6 +3918,7 @@ PK11_ParamToAlgid(SECOidTag algTag, SECItem *param, newParams = NULL; break; } + case CKM_AES_CBC: case CKM_DES_CBC: case CKM_DES3_CBC: case CKM_IDEA_CBC: @@ -3949,6 +3992,8 @@ PK11_MechanismToAlgtag(CK_MECHANISM_TYPE type) { CK_MECHANISM_TYPE PK11_GetPadMechanism(CK_MECHANISM_TYPE type) { switch(type) { + case CKM_AES_CBC: + return CKM_AES_CBC_PAD; case CKM_DES_CBC: return CKM_DES_CBC_PAD; case CKM_DES3_CBC: diff --git a/security/nss/lib/pk11wrap/secmodt.h b/security/nss/lib/pk11wrap/secmodt.h index f5e1ec2da..949edee26 100644 --- a/security/nss/lib/pk11wrap/secmodt.h +++ b/security/nss/lib/pk11wrap/secmodt.h @@ -127,6 +127,7 @@ struct PK11DefaultArrayEntryStr { #define SECMOD_MD2_FLAG 0x00000400L #define SECMOD_SSL_FLAG 0x00000800L #define SECMOD_TLS_FLAG 0x00001000L +#define SECMOD_AES_FLAG 0x00002000L /* reserved bit for future, do not use */ #define SECMOD_RESERVED_FLAG 0X08000000L #define SECMOD_FRIENDLY_FLAG 0x10000000L diff --git a/security/nss/lib/softoken/pkcs11.c b/security/nss/lib/softoken/pkcs11.c index 5308ab96e..8bf141df7 100644 --- a/security/nss/lib/softoken/pkcs11.c +++ b/security/nss/lib/softoken/pkcs11.c @@ -66,16 +66,22 @@ */ /* The next three strings must be exactly 32 characters long */ -static char *manufacturerID = "Netscape Communications Corp "; +static char *manufacturerID = "mozilla.org "; +static char manufacturerID_space[33]; static char *libraryDescription = "NSS Internal Crypto Services "; +static char libraryDescription_space[33]; static char *tokDescription = "NSS Generic Crypto Services "; +static char tokDescription_space[33]; static char *privTokDescription = "NSS Certificate DB "; +static char privTokDescription_space[33]; /* The next two strings must be exactly 64 characters long, with the first 32 characters meaningful */ static char *slotDescription = "NSS Internal Cryptographic Services Version 3.2 "; +static char slotDescription_space[65]; static char *privSlotDescription = "NSS User Private Key and Certificate Services "; +static char privSlotDescription_space[65]; static int minimumPinLen = 0; #define __PASTE(x,y) x##y @@ -233,25 +239,46 @@ struct mechanismList { #define CKF_DUZ_IT_ALL CKF_EN_DE_WR_UN | CKF_SN_VR_RE static struct mechanismList mechanisms[] = { + + /* + * PKCS #11 Mechanism List. + * + * The first argument is the PKCS #11 Mechanism we support. + * The second argument is Mechanism info structure. It includes: + * The minimum key size, + * in bits for RSA, DSA, DH, KEA, RC2 and RC4 * algs. + * in bytes for RC5, AES, and CAST* + * ignored for DES*, IDEA and FORTEZZA based + * The maximum key size, + * in bits for RSA, DSA, DH, KEA, RC2 and RC4 * algs. + * in bytes for RC5, AES, and CAST* + * ignored for DES*, IDEA and FORTEZZA based + * Flags + * What operations are supported by this mechanism. + * The third argument is a bool which tells if this mechanism is + * supported in the database token. + * + */ + /* ------------------------- RSA Operations ---------------------------*/ - {CKM_RSA_PKCS_KEY_PAIR_GEN,{128, 2048, CKF_GENERATE_KEY_PAIR}, PR_TRUE}, - {CKM_RSA_PKCS, { 16, 256, CKF_DUZ_IT_ALL}, PR_TRUE}, + {CKM_RSA_PKCS_KEY_PAIR_GEN,{128,0xffffffff,CKF_GENERATE_KEY_PAIR},PR_TRUE}, + {CKM_RSA_PKCS, {128,0xffffffff, CKF_DUZ_IT_ALL},PR_TRUE}, #ifdef PK11_RSA9796_SUPPORTED - {CKM_RSA_9796, { 16, 256, CKF_DUZ_IT_ALL}, PR_TRUE}, + {CKM_RSA_9796, {128,0xffffffff, CKF_DUZ_IT_ALL},PR_TRUE}, #endif - {CKM_RSA_X_509, { 16, 256, CKF_DUZ_IT_ALL}, PR_TRUE}, + {CKM_RSA_X_509, {128,0xffffffff, CKF_DUZ_IT_ALL},PR_TRUE}, /* -------------- RSA Multipart Signing Operations -------------------- */ - {CKM_MD2_RSA_PKCS, {16, 256, CKF_SN_VR}, PR_TRUE}, - {CKM_MD5_RSA_PKCS, {16, 256, CKF_SN_VR}, PR_TRUE}, - {CKM_SHA1_RSA_PKCS, {16, 256, CKF_SN_VR}, PR_TRUE}, + {CKM_MD2_RSA_PKCS, {128,0xffffffff, CKF_SN_VR}, PR_TRUE}, + {CKM_MD5_RSA_PKCS, {128,0xffffffff, CKF_SN_VR}, PR_TRUE}, + {CKM_SHA1_RSA_PKCS, {128,0xffffffff, CKF_SN_VR}, PR_TRUE}, /* ------------------------- DSA Operations --------------------------- */ - {CKM_DSA_KEY_PAIR_GEN, {64, 128, CKF_GENERATE_KEY_PAIR}, PR_TRUE}, - {CKM_DSA, {64, 128, CKF_SN_VR}, PR_TRUE}, - {CKM_DSA_SHA1, {64, 128, CKF_SN_VR}, PR_TRUE}, + {CKM_DSA_KEY_PAIR_GEN, {512, 1024, CKF_GENERATE_KEY_PAIR}, PR_TRUE}, + {CKM_DSA, {512, 1024, CKF_SN_VR}, PR_TRUE}, + {CKM_DSA_SHA1, {512, 1024, CKF_SN_VR}, PR_TRUE}, /* -------------------- Diffie Hellman Operations --------------------- */ /* no diffie hellman yet */ - {CKM_DH_PKCS_KEY_PAIR_GEN, {16, 128, CKF_GENERATE_KEY_PAIR}, PR_TRUE}, - {CKM_DH_PKCS_DERIVE, {16, 128, CKF_DERIVE}, PR_TRUE}, + {CKM_DH_PKCS_KEY_PAIR_GEN, {128, 1024, CKF_GENERATE_KEY_PAIR}, PR_TRUE}, + {CKM_DH_PKCS_DERIVE, {128, 1024, CKF_DERIVE}, PR_TRUE}, /* ------------------------- RC2 Operations --------------------------- */ {CKM_RC2_KEY_GEN, {1, 128, CKF_GENERATE}, PR_FALSE}, {CKM_RC2_ECB, {1, 128, CKF_EN_DE_WR_UN}, PR_FALSE}, @@ -283,6 +310,13 @@ static struct mechanismList mechanisms[] = { {CKM_CDMF_MAC, {8, 8, CKF_SN_VR}, PR_FALSE}, {CKM_CDMF_MAC_GENERAL, {8, 8, CKF_SN_VR}, PR_FALSE}, {CKM_CDMF_CBC_PAD, {8, 8, CKF_EN_DE_WR_UN}, PR_FALSE}, + /* ------------------------- AES Operations --------------------------- */ + {CKM_AES_KEY_GEN, {16, 32, CKF_GENERATE}, PR_FALSE}, + {CKM_AES_ECB, {16, 32, CKF_EN_DE_WR_UN}, PR_FALSE}, + {CKM_AES_CBC, {16, 32, CKF_EN_DE_WR_UN}, PR_FALSE}, + {CKM_AES_MAC, {16, 32, CKF_SN_VR}, PR_FALSE}, + {CKM_AES_MAC_GENERAL, {16, 32, CKF_SN_VR}, PR_FALSE}, + {CKM_AES_CBC_PAD, {16, 32, CKF_EN_DE_WR_UN}, PR_FALSE}, /* ------------------------- Hashing Operations ----------------------- */ {CKM_MD2, {0, 0, CKF_DIGEST}, PR_FALSE}, {CKM_MD2_HMAC, {1, 128, CKF_SN_VR}, PR_FALSE}, @@ -318,12 +352,12 @@ static struct mechanismList mechanisms[] = { #endif #if NSS_SOFTOKEN_DOES_RC5 /* ------------------------- RC5 Operations --------------------------- */ - {CKM_RC5_KEY_GEN, {1, 255, CKF_GENERATE}, PR_FALSE}, - {CKM_RC5_ECB, {1, 255, CKF_EN_DE_WR_UN}, PR_FALSE}, - {CKM_RC5_CBC, {1, 255, CKF_EN_DE_WR_UN}, PR_FALSE}, - {CKM_RC5_MAC, {1, 255, CKF_SN_VR}, PR_FALSE}, - {CKM_RC5_MAC_GENERAL, {1, 255, CKF_SN_VR}, PR_FALSE}, - {CKM_RC5_CBC_PAD, {1, 255, CKF_EN_DE_WR_UN}, PR_FALSE}, + {CKM_RC5_KEY_GEN, {1, 32, CKF_GENERATE}, PR_FALSE}, + {CKM_RC5_ECB, {1, 32, CKF_EN_DE_WR_UN}, PR_FALSE}, + {CKM_RC5_CBC, {1, 32, CKF_EN_DE_WR_UN}, PR_FALSE}, + {CKM_RC5_MAC, {1, 32, CKF_SN_VR}, PR_FALSE}, + {CKM_RC5_MAC_GENERAL, {1, 32, CKF_SN_VR}, PR_FALSE}, + {CKM_RC5_CBC_PAD, {1, 32, CKF_EN_DE_WR_UN}, PR_FALSE}, #endif #ifdef PK11_IDEA_SUPPORTED /* ------------------------- IDEA Operations -------------------------- */ @@ -335,12 +369,12 @@ static struct mechanismList mechanisms[] = { {CKM_IDEA_CBC_PAD, {16, 16, CKF_EN_DE_WR_UN}, PR_FALSE}, #endif /* --------------------- Secret Key Operations ------------------------ */ - {CKM_GENERIC_SECRET_KEY_GEN, {1, 256, CKF_GENERATE}, PR_FALSE}, - {CKM_CONCATENATE_BASE_AND_KEY, {1, 256, CKF_GENERATE}, PR_FALSE}, - {CKM_CONCATENATE_BASE_AND_DATA, {1, 256, CKF_GENERATE}, PR_FALSE}, - {CKM_CONCATENATE_DATA_AND_BASE, {1, 256, CKF_GENERATE}, PR_FALSE}, - {CKM_XOR_BASE_AND_DATA, {1, 256, CKF_GENERATE}, PR_FALSE}, - {CKM_EXTRACT_KEY_FROM_KEY, {1, 256, CKF_DERIVE}, PR_FALSE}, + {CKM_GENERIC_SECRET_KEY_GEN, {1, 32, CKF_GENERATE}, PR_FALSE}, + {CKM_CONCATENATE_BASE_AND_KEY, {1, 32, CKF_GENERATE}, PR_FALSE}, + {CKM_CONCATENATE_BASE_AND_DATA, {1, 32, CKF_GENERATE}, PR_FALSE}, + {CKM_CONCATENATE_DATA_AND_BASE, {1, 32, CKF_GENERATE}, PR_FALSE}, + {CKM_XOR_BASE_AND_DATA, {1, 32, CKF_GENERATE}, PR_FALSE}, + {CKM_EXTRACT_KEY_FROM_KEY, {1, 32, CKF_DERIVE}, PR_FALSE}, /* ---------------------- SSL Key Derivations ------------------------- */ {CKM_SSL3_PRE_MASTER_KEY_GEN, {48, 48, CKF_GENERATE}, PR_FALSE}, {CKM_SSL3_MASTER_KEY_DERIVE, {48, 48, CKF_DERIVE}, PR_FALSE}, @@ -353,27 +387,40 @@ static struct mechanismList mechanisms[] = { {CKM_TLS_MASTER_KEY_DERIVE, {48, 48, CKF_DERIVE}, PR_FALSE}, {CKM_TLS_KEY_AND_MAC_DERIVE, {48, 48, CKF_DERIVE}, PR_FALSE}, /* ---------------------- PBE Key Derivations ------------------------ */ - {CKM_PBE_MD2_DES_CBC, {64, 64, CKF_DERIVE}, PR_TRUE}, - {CKM_PBE_MD5_DES_CBC, {64, 64, CKF_DERIVE}, PR_TRUE}, + {CKM_PBE_MD2_DES_CBC, {8, 8, CKF_DERIVE}, PR_TRUE}, + {CKM_PBE_MD5_DES_CBC, {8, 8, CKF_DERIVE}, PR_TRUE}, /* ------------------ NETSCAPE PBE Key Derivations ------------------- */ - {CKM_NETSCAPE_PBE_SHA1_DES_CBC, { 64, 64, CKF_GENERATE}, PR_TRUE}, - {CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC, {192, 192, CKF_GENERATE}, PR_TRUE}, - {CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC, {192, 192, CKF_GENERATE}, PR_TRUE}, - {CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC, { 40, 40, CKF_GENERATE}, PR_TRUE}, - {CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC, {128, 128, CKF_GENERATE}, PR_TRUE}, - {CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4, { 40, 40, CKF_GENERATE}, PR_TRUE}, - {CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4, {128, 128, CKF_GENERATE}, PR_TRUE}, - {CKM_PBE_SHA1_DES3_EDE_CBC, {192, 192, CKF_GENERATE}, PR_TRUE}, - {CKM_PBE_SHA1_DES2_EDE_CBC, {192, 192, CKF_GENERATE}, PR_TRUE}, - {CKM_PBE_SHA1_RC2_40_CBC, { 40, 40, CKF_GENERATE}, PR_TRUE}, - {CKM_PBE_SHA1_RC2_128_CBC, {128, 128, CKF_GENERATE}, PR_TRUE}, - {CKM_PBE_SHA1_RC4_40, { 40, 40, CKF_GENERATE}, PR_TRUE}, - {CKM_PBE_SHA1_RC4_128, {128, 128, CKF_GENERATE}, PR_TRUE}, + {CKM_NETSCAPE_PBE_SHA1_DES_CBC, { 8, 8, CKF_GENERATE}, PR_TRUE}, + {CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC, {24,24, CKF_GENERATE}, PR_TRUE}, + {CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC, {24,24, CKF_GENERATE}, PR_TRUE}, + {CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC, {40,40, CKF_GENERATE}, PR_TRUE}, + {CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC, {40,40, CKF_GENERATE}, PR_TRUE}, + {CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4, {40,40, CKF_GENERATE}, PR_TRUE}, + {CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4, {128,128, CKF_GENERATE}, PR_TRUE}, + {CKM_PBE_SHA1_DES3_EDE_CBC, {24,24, CKF_GENERATE}, PR_TRUE}, + {CKM_PBE_SHA1_DES2_EDE_CBC, {24,24, CKF_GENERATE}, PR_TRUE}, + {CKM_PBE_SHA1_RC2_40_CBC, {40,40, CKF_GENERATE}, PR_TRUE}, + {CKM_PBE_SHA1_RC2_128_CBC, {128,128, CKF_GENERATE}, PR_TRUE}, + {CKM_PBE_SHA1_RC4_40, {40,40, CKF_GENERATE}, PR_TRUE}, + {CKM_PBE_SHA1_RC4_128, {128,128, CKF_GENERATE}, PR_TRUE}, }; static CK_ULONG mechanismCount = sizeof(mechanisms)/sizeof(mechanisms[0]); /* load up our token database */ static CK_RV pk11_importKeyDB(PK11Slot *slot); + +static char * +pk11_setStringName(char *inString, char *buffer, int buffer_length) { + int full_length, string_length; + + full_length = buffer_length -1; + string_length = PORT_Strlen(inString); + if (string_length > full_length) string_length = full_length; + PORT_Memset(buffer,' ',full_length); + buffer[full_length] = 0; + PORT_Memcpy(buffer,inString,full_length); + return buffer; +} /* * Configuration utils */ @@ -384,23 +431,29 @@ PK11_ConfigurePKCS11(char *man, char *libdes, char *tokdes, char *ptokdes, { /* make sure the internationalization was done correctly... */ - if (man && (PORT_Strlen(man) == 33)) { - manufacturerID = man; + if (man) { + manufacturerID = pk11_setStringName(man,manufacturerID_space, + sizeof(manufacturerID_space)); } - if (libdes && (PORT_Strlen(libdes) == 33)) { - libraryDescription = libdes; + if (libdes) { + libraryDescription = pk11_setStringName(libdes, + libraryDescription_space, sizeof(libraryDescription_space)); } - if (tokdes && (PORT_Strlen(tokdes) == 33)) { - tokDescription = tokdes; + if (tokdes) { + tokDescription = pk11_setStringName(tokdes,tokDescription_space, + sizeof(tokDescription_space)); } - if (ptokdes && (PORT_Strlen(ptokdes) == 33)) { - privTokDescription = ptokdes; + if (ptokdes) { + privTokDescription = pk11_setStringName(ptokdes, + privTokDescription_space, sizeof(privTokDescription_space)); } - if (slotdes && (PORT_Strlen(slotdes) == 65)) { - slotDescription = slotdes; + if (slotdes) { + slotDescription = pk11_setStringName(slotdes,slotDescription_space, + sizeof(slotDescription_space)); } - if (pslotdes && (PORT_Strlen(pslotdes) == 65)) { - privSlotDescription = pslotdes; + if (pslotdes) { + privSlotDescription = pk11_setStringName(pslotdes, + privSlotDescription_space, sizeof(privSlotDescription_space)); } if (minimumPinLen <= PK11_MAX_PIN) { diff --git a/security/nss/lib/softoken/pkcs11c.c b/security/nss/lib/softoken/pkcs11c.c index 1db93edab..5bf4450c1 100644 --- a/security/nss/lib/softoken/pkcs11c.c +++ b/security/nss/lib/softoken/pkcs11c.c @@ -716,6 +716,35 @@ finish_des: context->destroy = (PK11Destroy) DES_DestroyContext; break; + case CKM_AES_CBC_PAD: + context->doPad = PR_TRUE; + context->blockSize = 16; + /* fall thru */ + case CKM_AES_ECB: + case CKM_AES_CBC: + if (key_type != CKK_AES) { + crv = CKR_KEY_TYPE_INCONSISTENT; + break; + } + att = pk11_FindAttribute(key,CKA_VALUE); + if (att == NULL) { + crv = CKR_KEY_HANDLE_INVALID; + break; + } + context->cipherInfo = AES_CreateContext( + (unsigned char*)att->attrib.pValue, + (unsigned char*)pMechanism->pParameter, + pMechanism->mechanism == CKM_AES_ECB ? NSS_AES : NSS_AES_CBC, + PR_TRUE, att->attrib.ulValueLen, 16); + pk11_FreeAttribute(att); + if (context->cipherInfo == NULL) { + crv = CKR_HOST_MEMORY; + break; + } + context->update = (PK11Cipher) AES_Encrypt; + context->destroy = (PK11Destroy) AES_DestroyContext; + + break; default: crv = CKR_MECHANISM_INVALID; break; @@ -1095,6 +1124,35 @@ finish_des: context->destroy = (PK11Destroy) DES_DestroyContext; break; + case CKM_AES_CBC_PAD: + context->doPad = PR_TRUE; + context->blockSize = 16; + /* fall thru */ + case CKM_AES_ECB: + case CKM_AES_CBC: + if (key_type != CKK_AES) { + crv = CKR_KEY_TYPE_INCONSISTENT; + break; + } + att = pk11_FindAttribute(key,CKA_VALUE); + if (att == NULL) { + crv = CKR_KEY_HANDLE_INVALID; + break; + } + context->cipherInfo = AES_CreateContext( + (unsigned char*)att->attrib.pValue, + (unsigned char*)pMechanism->pParameter, + pMechanism->mechanism == CKM_AES_ECB ? NSS_AES : NSS_AES_CBC, + PR_TRUE, att->attrib.ulValueLen,16); + pk11_FreeAttribute(att); + if (context->cipherInfo == NULL) { + crv = CKR_HOST_MEMORY; + break; + } + context->update = (PK11Cipher) AES_Decrypt; + context->destroy = (PK11Destroy) AES_DestroyContext; + + break; default: crv = CKR_MECHANISM_INVALID; break; @@ -1869,6 +1927,16 @@ pk11_InitCBCMac(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, cbc_mechanism.pParameter = &ivBlock; cbc_mechanism.ulParameterLen = blockSize; break; + case CKM_AES_MAC_GENERAL: + mac_bytes = *(CK_ULONG *)pMechanism->pParameter; + /* fall through */ + case CKM_AES_MAC: + blockSize = 16; + PORT_Memset(ivBlock,0,blockSize); + cbc_mechanism.mechanism = CKM_AES_CBC; + cbc_mechanism.pParameter = &ivBlock; + cbc_mechanism.ulParameterLen = blockSize; + break; default: return CKR_FUNCTION_NOT_SUPPORTED; } @@ -2919,6 +2987,10 @@ CK_RV NSC_GenerateKey(CK_SESSION_HANDLE hSession, key_length = 24; checkWeak = PR_TRUE; break; + case CKM_AES_KEY_GEN: + key_type = CKK_AES; + if (key_length == 0) crv = CKR_TEMPLATE_INCOMPLETE; + break; case CKM_SSL3_PRE_MASTER_KEY_GEN: key_type = CKK_GENERIC_SECRET; key_length = 48; diff --git a/security/nss/lib/softoken/pkcs11t.h b/security/nss/lib/softoken/pkcs11t.h index 254b6dd1e..49238be86 100644 --- a/security/nss/lib/softoken/pkcs11t.h +++ b/security/nss/lib/softoken/pkcs11t.h @@ -333,6 +333,9 @@ typedef CK_ULONG CK_KEY_TYPE; #define CKK_JUNIPER 0x0000001D #define CKK_CDMF 0x0000001E +/* all these key types are new for v2.11 */ +#define CKK_AES 0x0000001F + #define CKK_VENDOR_DEFINED 0x80000000 @@ -610,6 +613,13 @@ typedef CK_ULONG CK_MECHANISM_TYPE; #define CKM_JUNIPER_WRAP 0x00001065 #define CKM_FASTHASH 0x00001070 +#define CKM_AES_KEY_GEN 0x00001080 +#define CKM_AES_ECB 0x00001081 +#define CKM_AES_CBC 0x00001082 +#define CKM_AES_MAC 0x00001083 +#define CKM_AES_MAC_GENERAL 0x00001084 +#define CKM_AES_CBC_PAD 0x00001085 + #define CKM_VENDOR_DEFINED 0x80000000 typedef CK_MECHANISM_TYPE CK_PTR CK_MECHANISM_TYPE_PTR; diff --git a/security/nss/tests/cert/cert.sh b/security/nss/tests/cert/cert.sh new file mode 100755 index 000000000..05bcf4d51 --- /dev/null +++ b/security/nss/tests/cert/cert.sh @@ -0,0 +1,291 @@ +#! /bin/sh + +######################################################################## +# +# mozilla/security/nss/tests/cert/cert.sh +# +# Certificate generating and handeling for NSS QA, can be included +# multiple times from all.sh and the individual scripts +# +# needs to work on all Unix and Windows platforms +# +# included from (don't expect this to be up to date) +# -------------------------------------------------- +# all.sh +# ssl.sh +# smime.sh +# tools.sh +# +# special strings +# --------------- +# FIXME ... known problems, search for this string +# NOTE .... unexpected behavior +# +# FIXME - Netscape - NSS +######################################################################## + +if [ -z "${INIT_SOURCED}" ] ; then + cd ../common + . init.sh +fi +SCRIPTNAME="cert.sh" +if [ -z "${CLEANUP}" ] ; then + CLEANUP="${SCRIPTNAME}" +fi + + +certlog() ###################### write the cert_status file +{ + echo "$SCRIPTNAME $*" + echo $* >>${CERT_LOG_FILE} +} + +################################ noise ################################## +# Generate noise for our certs +# +# NOTE: these keys are only suitable for testing, as this whole thing bypasses +# the entropy gathering. Don't use this method to generate keys and certs for +# product use or deployment. +######################################################################### +noise() +{ + netstat >> ${NOISE_FILE} 2>&1 + date >> ${NOISE_FILE} 2>&1 +} + +################################ certu ################################# +# local shell function to call certutil, also: writes action and options to +# stdout, sets variable RET and writes results to the html file results +######################################################################## +certu() +{ + echo "$SCRIPTNAME: ${CU_ACTION}" + + if [ -n "${CU_SUBJECT}" ]; then + #the subject of the cert contains blanks, and the shell + #will strip the quotes off the string, if called otherwise... + echo "certutil -s \"${CU_SUBJECT}\" $*" + certutil -s "${CU_SUBJECT}" $* + CU_SUBJECT="" + else + echo "certutil $*" + certutil $* + fi + RET=$? + if [ "$RET" -ne 0 ]; then + CERTFAILED=$RET + html_failed "<TR><TD>${CU_ACTION} ($RET) " + certlog "ERROR: ${CU_ACTION} failed $RET" + else + html_passed "<TR><TD>${CU_ACTION}" + fi + return $RET +} + +################################ init_cert ############################# +# local shell function to initialize creation of client and server certs +######################################################################## +init_cert() +{ + CERTDIR="$1" + CERTNAME="$2" + CERTSERIAL="$3" + + if [ ! -d "${CERTDIR}" ]; then + mkdir -p "${CERTDIR}" + else + echo "WARNING - ${CERTDIR} exists" + fi + cd "${CERTDIR}" + + noise +} + +################################ create_cert ########################### +# local shell function to create client certs +# initialize DB, import +# root cert +# generate request +# sign request +# import Cert +# +######################################################################## +create_cert() +{ + init_cert "$1" "$2" "$3" + + CU_ACTION="Initializing ${CERTNAME}'s Cert DB" + certu -N -d "${CERTDIR}" -f "${PWFILE}" 2>&1 + if [ "$RET" -ne 0 ]; then + return $RET + fi + + CU_ACTION="Import Root CA for $CERTNAME" + certu -A -n "TestCA" -t "TC,TC,TC" -f "${PWFILE}" -d "${CERTDIR}" -i "${CADIR}/root.cert" 2>&1 + if [ "$RET" -ne 0 ]; then + return $RET + fi + + CU_ACTION="Generate Cert Request for $CERTNAME" + CU_SUBJECT="CN=$CERTNAME, E=${CERTNAME}@bogus.com, O=BOGUS NSS, L=Mountain View, ST=California, C=US" + certu -R -d "${CERTDIR}" -f "${PWFILE}" -z "${NOISE_FILE}" -o req 2>&1 + if [ "$RET" -ne 0 ]; then + return $RET + fi + + CU_ACTION="Sign ${CERTNAME}'s Request" + certu -C -c "TestCA" -m "$CERTSERIAL" -v 60 -d "${CADIR}" -i req -o "${CERTNAME}.cert" -f "${PWFILE}" 2>&1 + if [ "$RET" -ne 0 ]; then + return $RET + fi + + CU_ACTION="Import $CERTNAME's Cert" + certu -A -n "$CERTNAME" -t "u,u,u" -d "${CERTDIR}" -f "${PWFILE}" -i "${CERTNAME}.cert" 2>&1 + if [ "$RET" -ne 0 ]; then + return $RET + fi + + certlog "SUCCESS: $CERTNAME's Cert Created" + return 0 +} + +################## main ################################################# + +certlog "********************** running $SCRIPTNAME **********************" +html "<TABLE BORDER=1><TR><TH COLSPAN=3>Certutil Tests</TH></TR>" +html "<TR><TH width=500>Test Case</TH><TH width=50>Result</TH></TR>" + +################## Generate noise for our CA cert. ###################### +# NOTE: these keys are only suitable for testing, as this whole thing bypasses +# the entropy gathering. Don't use this method to generate keys and certs for +# product use or deployment. +# +ps -efl > ${NOISE_FILE} 2>&1 +ps aux >> ${NOISE_FILE} 2>&1 +noise + +################# Temp. Certificate Authority (CA) ####################### +# +# build the TEMP CA used for testing purposes +# +################# Creating a CA Certificate ############################## +# +echo "********************** Creating a CA Certificate **********************" + +if [ ! -d "${CADIR}" ]; then + mkdir -p "${CADIR}" +fi +cd ${CADIR} + +echo nss > ${PWFILE} + +CU_ACTION="Creating CA Cert DB" +certu -N -d ${CADIR} -f ${PWFILE} 2>&1 +if [ "$RET" -ne 0 ]; then + exit 3 #with errorcode +fi + +################# Generating Certscript ################################# +# +echo "$SCRIPTNAME: Certificate initialized, generating script" + +echo 5 > ${CERTSCRIPT} +echo 9 >> ${CERTSCRIPT} +echo n >> ${CERTSCRIPT} +echo y >> ${CERTSCRIPT} +echo 3 >> ${CERTSCRIPT} +echo n >> ${CERTSCRIPT} +echo 5 >> ${CERTSCRIPT} +echo 6 >> ${CERTSCRIPT} +echo 7 >> ${CERTSCRIPT} +echo 9 >> ${CERTSCRIPT} +echo n >> ${CERTSCRIPT} + +################# Creating CA Cert ###################################### +# +CU_ACTION="Creating CA Cert" +CU_SUBJECT="CN=NSS Test CA, O=BOGUS NSS, L=Mountain View, ST=California, C=US" +certu -S -n "TestCA" -t "CTu,CTu,CTu" -v 60 -x -d ${CADIR} -1 -2 -5 -f ${PWFILE} -z ${NOISE_FILE} < ${CERTSCRIPT} 2>&1 +if [ "$RET" -ne 0 ]; then + exit 1 #with errorcode +fi + +################# Exporting Root Cert ################################### +# +CU_ACTION="Exporting Root Cert" +certu -L -n "TestCA" -r -d ${CADIR} -o ${CADIR}/root.cert +if [ "$RET" -ne 0 ]; then + exit 2 #with errorcode +fi + +################# Creating Certificates for S/MIME tests ################ +# +CERTFAILED=0 +echo "**************** Creating Client CA Issued Certificates ****************" + +create_cert ${ALICEDIR} "Alice" 3 +create_cert ${BOBDIR} "Bob" 4 + +echo "**************** Creating Dave's Certificate ****************" +init_cert "${DAVEDIR}" Dave 5 +cp ${CADIR}/*.db . + +######################################################################### +# +CU_ACTION="Creating ${CERTNAME}'s Server Cert" +CU_SUBJECT="CN=${CERTNAME}, E=${CERTNAME}@bogus.com, O=BOGUS Netscape, L=Mountain View, ST=California, C=US" +certu -S -n "${CERTNAME}" -c "TestCA" -t "u,u,u" -m "$CERTSERIAL" -d "${CERTDIR}" -f "${PWFILE}" -z "${NOISE_FILE}" -v 60 2>&1 + +CU_ACTION="Export Dave's Cert" +certu -L -n "Dave" -r -d ${DAVEDIR} -o Dave.cert + +################# Importing Certificates for S/MIME tests ############### +# +echo "**************** Importing Certificates *********************" +CU_ACTION="Import Alices's cert into Bob's db" +certu -E -t "u,u,u" -d ${BOBDIR} -f ${PWFILE} -i ${ALICEDIR}/Alice.cert 2>&1 + +CU_ACTION="Import Bob's cert into Alice's db" +certu -E -t "u,u,u" -d ${ALICEDIR} -f ${PWFILE} -i ${BOBDIR}/Bob.cert 2>&1 + +CU_ACTION="Import Dave's cert into Alice's DB" +certu -E -t "u,u,u" -d ${ALICEDIR} -f ${PWFILE} -i ${DAVEDIR}/Dave.cert 2>&1 + +CU_ACTION="Import Dave's cert into Bob's DB" +certu -E -t "u,u,u" -d ${BOBDIR} -f ${PWFILE} -i ${DAVEDIR}/Dave.cert 2>&1 + +if [ "$CERTFAILED" != 0 ] ; then + certlog "ERROR: SMIME failed $RET" +else + certlog "SUCCESS: SMIME passed" +fi + +################# Creating Certs for SSL test ########################### +# +CERTFAILED=0 +echo "**************** Creating Client CA Issued Certificates ****************" +create_cert ${CLIENTDIR} "TestUser" 6 + +echo "***** Creating Server CA Issued Certificate for ${HOST}.${DOMSUF} *****" +init_cert ${SERVERDIR} "${HOST}.${DOMSUF}" 1 +cp ${CADIR}/*.db . +CU_ACTION="Creating ${CERTNAME}'s Server Cert" +CU_SUBJECT="CN=${CERTNAME}, O=BOGUS Netscape, L=Mountain View, ST=California, C=US" +certu -S -n "${CERTNAME}" -c "TestCA" -t "Pu,Pu,Pu" -d "${CERTDIR}" -f "${PWFILE}" -z "${NOISE_FILE}" -v 60 2>&1 +#certu -S -n "${CERTNAME}" -c "TestCA" -t "Pu,Pu,Pu" -m "$CERTSERIAL" -d "${CERTDIR}" -f "${PWFILE}" -z "${NOISE_FILE}" -v 60 2>&1 +if [ "$CERTFAILED" != 0 ] ; then + certlog "ERROR: SSL failed $RET" +else + certlog "SUCCESS: SSL passed" +fi + +certlog "********************** finished $SCRIPTNAME **********************" +html "</TABLE><BR>" + +cd ${CURDIR} +. ../common/cleanup.sh + + +# we will probably need mor for the tools +# tools.sh: generates an alice cert in a "Cert" directory +# FIXME, for now use ALICEDIR and see if this works... diff --git a/security/nss/tests/core_watch b/security/nss/tests/core_watch index b116b6728..a627983a3 100755 --- a/security/nss/tests/core_watch +++ b/security/nss/tests/core_watch @@ -9,11 +9,11 @@ # to activate put the following into all.sh (after the HOSTDIR # has been exported ############################################################# -# sh `dirname $0`/core_watch $HOSTDIR ${HOSTDIR} & +# sh `dirname $0`/core_watch $HOSTDIR ${HOSTDIR} & # CORE_WATCH_PID=$! # if [ -n "${KILLPIDS}" ] # then -# echo $CORE_WATCH_PID >>"${KILLPIDS}" +# echo $CORE_WATCH_PID >>"${KILLPIDS}" # fi ############################################################# @@ -35,11 +35,11 @@ echo $$ >>"${KILLPIDS}" #so Exit() can hopefully kill this shell while [ 1 ] do - for w in `find $1 -name "core" -print` - do - echo "Found core $w" - mv $w $w.`date +%H%M%S` - done - sleep 30 + for w in `find $1 -name "core" -print` + do + echo "Found core $w" + mv $w $w.`date +%H%M%S` + done + sleep 30 done diff --git a/security/nss/tests/header b/security/nss/tests/header index f4f544036..f39bddeb9 100644 --- a/security/nss/tests/header +++ b/security/nss/tests/header @@ -4,44 +4,44 @@ # # /u/sonmi/bin/header - /u/svbld/bin/init/nss/header # -# variables, utilities and shellfunktions global to NSS QA +# variables, utilities and shellfunctions global to NSS QA # needs to work on all Unix platforms # # included from (don't expect this to be up to date) # -------------------------------------------------- -# qa_stat -# mksymlinks -# nssqa +# qa_stat +# mksymlinks +# nssqa # # parameters # ---------- -# nssversion (supported: 30b, 31, tip) -# builddate (default - today) +# nssversion (supported: 30b, 31, tip) +# builddate (default - today) # # options # ------- -# -y answer all questions with y - use at your own risk... ignores warnings -# -s silent (only usefull with -y) -# -h, -? - you guessed right - displays this text -# -d debug -# -f <filename> - write the (error)output to filename -# -fcronfile produces the resultfiles in the same locations -# as would have been produced with -cron -# -m <mailinglist> - send filename to mailinglist (csl) only useful -# with -f -# -l <mozroot> run on a local build O_LOCAL -# -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.<scriptname> +# -y answer all questions with y - use at your own risk... ignores warnings +# -s silent (only usefull with -y) +# -h, -? - you guessed right - displays this text +# -d debug +# -f <filename> - write the (error)output to filename +# -fcronfile produces the resultfiles in the same locations +# as would have been produced with -cron +# -m <mailinglist> - send filename to mailinglist (csl) only useful +# with -f +# -l <mozroot> run on a local build O_LOCAL +# -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.<scriptname> # # special strings # --------------- -# FIXME ... known problems, search for this string -# NOTE .... unexpected behavior +# FIXME ... known problems, search for this string +# NOTE .... unexpected behavior # # moduls (not yet) # ---------------- -# --# INIT -# --# USERCOM -# --# UTILS +# --# INIT +# --# USERCOM +# --# UTILS # # FIXME - split in init / usercom / utils # @@ -53,139 +53,138 @@ if [ -z "$QASCRIPT_DIR" ] then - QASCRIPT_DIR=`dirname $0` - if [ "$QASCRIPT_DIR" = '.' ] - then - QASCRIPT_DIR=`pwd` - fi + QASCRIPT_DIR=`dirname $0` + if [ "$QASCRIPT_DIR" = '.' ] + then + QASCRIPT_DIR=`pwd` + fi fi export QASCRIPT_DIR -O_ALWAYS_YES=OFF # turned on by -y answer all questions with y +O_ALWAYS_YES=OFF # turned on by -y answer all questions with y -if [ -z "$O_INIT" ] # header is global, some including scripts may not -then # want the init to run, the others don't need to bother - O_INIT=ON +if [ -z "$O_INIT" ] # header is global, some including scripts may not +then # want the init to run, the others don't need to bother + O_INIT=ON fi -if [ -z "$O_PARAM" ] # header is global, some including scripts may not -then # require parameters, the others don't need to bother - O_PARAM=ON +if [ -z "$O_PARAM" ] # header is global, some including scripts may not +then # require parameters, the others don't need to bother + O_PARAM=ON fi -if [ -z "$O_OPTIONS" ] # header is global, some including scripts may not -then # permit options, they don't need to bother - O_OPTIONS=OFF +if [ -z "$O_OPTIONS" ] # header is global, some including scripts may not +then # permit options, they don't need to bother + O_OPTIONS=OFF fi -O_SILENT=OFF # turned on by -s silent (only usefull with -y) -O_DEBUG=OFF # turned on by -d - calls to Debug produce output when ON -O_FILE=OFF # turned on by -f echo all output to a file $FILENAME -O_CRON=OFF # turned on by -cron cron use only -O_CRONFILE=OFF # turned on by -cron cron and -fcron -O_LOCAL=OFF # turned on by -l run on a local build in $MOZROOT -O_MAIL=OFF # turned on by -m - sends email +O_SILENT=OFF # turned on by -s silent (only usefull with -y) +O_DEBUG=OFF # turned on by -d - calls to Debug produce output when ON +O_FILE=OFF # turned on by -f echo all output to a file $FILENAME +O_CRON=OFF # turned on by -cron cron use only +O_CRONFILE=OFF # turned on by -cron cron and -fcron +O_LOCAL=OFF # turned on by -l run on a local build in $MOZROOT +O_MAIL=OFF # turned on by -m - sends email if [ -z "$DOMSUF" ] then - - DOMSUF=red.iplanet.com - DS_WAS_SET=FALSE + + DOMSUF=red.iplanet.com + DS_WAS_SET=FALSE else - DS_WAS_SET=TRUE + DS_WAS_SET=TRUE fi TMPFILES="" -WAIT_FOR=600 # if waiting for an event sleep n seconds before rechecking - # recomended value 10 minutes 600 -WAIT_TIMES=30 # recheck n times before giving up - recomended 30 - total of 5h +WAIT_FOR=600 # if waiting for an event sleep n seconds before rechecking + # recomended value 10 minutes 600 +WAIT_TIMES=30 # recheck n times before giving up - recomended 30 - total of 5h -if [ -z "$QAYEAR" ] # may I introduce - the y2k+1 bug? QA for last year -then # might not work - QAYEAR=`date +%Y` +if [ -z "$QAYEAR" ] # may I introduce - the y2k+1 bug? QA for last year +then # might not work + QAYEAR=`date +%Y` fi -if [ -z "$TMP" ] +if [ -z "$TMP" ] then - if [ -z "$TEMP" ] - then - TMP="/tmp" - else - TMP=$TEMP - fi + if [ -z "$TEMP" ] + then + TMP="/tmp" + else + TMP=$TEMP + fi fi -if [ ! -w "$TMP" ] +if [ ! -w "$TMP" ] then - echo "Can't write to tmp directory $TMP - exiting" - echo "Can't write to tmp directory $TMP - exiting" >&2 - exit 1 + echo "Can't write to tmp directory $TMP - exiting" + echo "Can't write to tmp directory $TMP - exiting" >&2 + exit 1 fi KILLPIDS="$TMP/killpids.$$" export KILLERPIDS TMPFILES="$TMPFILES $KILLPIDS" -KILL_SELFSERV=OFF # if sourcing script sets this to on cleanup will also - # kill the running selfserv processes +KILL_SELFSERV=OFF # if sourcing script sets this to on cleanup will also + # kill the running selfserv processes - # Set the masterbuilds - -if [ -z "$MASTERBUILD" ] + # Set the masterbuilds +if [ -z "$MASTERBUILD" ] then - MASTERBUILD=y2sun2_Solaris8 - #MASTERBUILD=shame_Solaris2.6 - MB_WAS_SET=FALSE + MASTERBUILD=y2sun2_Solaris8 + #MASTERBUILD=shame_Solaris2.6 + MB_WAS_SET=FALSE else - MB_WAS_SET=TRUE + MB_WAS_SET=TRUE fi -if [ -z "$BUILDNUMBER" ] +if [ -z "$BUILDNUMBER" ] then - BUILDNUMBER=1 + BUILDNUMBER=1 fi export BUILDNUMBER if [ -z "$NT_MASTERBUILD" ] -then - NT_MASTERBUILD=blowfish_NT4.0_Win95 - NT_MB_WAS_SET=FALSE +then + NT_MASTERBUILD=blowfish_NT4.0_Win95 + NT_MB_WAS_SET=FALSE else - NT_MB_WAS_SET=TRUE + NT_MB_WAS_SET=TRUE fi -O_LDIR=OFF #local QA dir for NT, temporary +O_LDIR=OFF #local QA dir for NT, temporary -if [ -z "$WIN_WAIT_FOREVER" ] # header is global, some including scripts -then # want the init to wait forever for directories to - # appear (windows only) if OFF exit, if ON wait forever - WIN_WAIT_FOREVER=OFF +if [ -z "$WIN_WAIT_FOREVER" ] # header is global, some including scripts +then # want the init to wait forever for directories to + # appear (windows only) if OFF exit, if ON wait forever + WIN_WAIT_FOREVER=OFF fi -EARLY_EXIT=TRUE #before the report file has been created, causes Exit to - #create it +EARLY_EXIT=TRUE #before the report file has been created, causes Exit to + #create it ################################### glob_init ########################## # global shell function, main initialisation function ######################################################################## glob_init() { - if [ $O_PARAM = "ON" ] - then - eval_opts $* # parse parameters and options - set flags - fi - #if [ $O_CRON = "ON" ] # if running from cron HOST needs to be - #then # known early, so the output file name - set_host # can be constructed. If running interactive - #fi # it needs to be called by sourcing script - . $QASCRIPT_DIR/set_environment #finds out if we are running on Windows - Debug "OPerating system: $os_name $os_full" - if [ $O_WIN = "ON" ] - then - #set_host - write_to_tmpfile - else - Debug "Not a Windows OS" - fi - umask 0 - set_dirs - set_files - set_vars + if [ $O_PARAM = "ON" ] + then + eval_opts $* # parse parameters and options - set flags + fi + #if [ $O_CRON = "ON" ] # if running from cron HOST needs to be + #then # known early, so the output file name + set_host # can be constructed. If running interactive + #fi # it needs to be called by sourcing script + . $QASCRIPT_DIR/set_environment #finds out if we are running on Windows + Debug "OPerating system: $os_name $os_full" + if [ $O_WIN = "ON" ] + then + #set_host + write_to_tmpfile + else + Debug "Not a Windows OS" + fi + umask 0 + set_dirs + set_files + set_vars } ################################### set_vars ########################### @@ -193,27 +192,27 @@ glob_init() ######################################################################## set_vars() { - if [ -z "$LOGNAME" ] - then - if [ $O_WIN = "ON" ] - then - LOGNAME=$USERNAME - else - LOGNAME=$USER - fi - if [ -z "$LOGNAME" ] - then - LOGNAME=$UNAME - if [ -z "$LOGNAME" ] - then - LOGNAME=`basename $HOME` - fi - fi - fi - if [ -z "$LOGNAME" ] - then - Exit "Can't determine current user" - fi + if [ -z "$LOGNAME" ] + then + if [ $O_WIN = "ON" ] + then + LOGNAME=$USERNAME + else + LOGNAME=$USER + fi + if [ -z "$LOGNAME" ] + then + LOGNAME=$UNAME + if [ -z "$LOGNAME" ] + then + LOGNAME=`basename $HOME` + fi + fi + fi + if [ -z "$LOGNAME" ] + then + Exit "Can't determine current user" + fi } ################################### set_dirs ########################### @@ -221,15 +220,15 @@ set_vars() ######################################################################## find_nt_masterbuild() { - NT_MASTERDIR=${D2}/${NT_MASTERBUILD} - if [ "${NT_MB_WAS_SET}" = "FALSE" -a ! -d $NT_MASTERDIR ] ; then - if [ -d ${D2}/*NT4* ] ; then - NT_MASTERBUILD=` cd ${D2}; ls -d *NT4* ` - Debug "NT_MASTERBUILD $NT_MASTERBUILD" - NT_MASTERDIR=${D2}/${NT_MASTERBUILD} - fi - fi - Debug "NT_MASTERDIR $NT_MASTERDIR" + NT_MASTERDIR=${D2}/${NT_MASTERBUILD} + if [ "${NT_MB_WAS_SET}" = "FALSE" -a ! -d $NT_MASTERDIR ] ; then + if [ -d ${D2}/*NT4* ] ; then + NT_MASTERBUILD=` cd ${D2}; ls -d *NT4* ` + Debug "NT_MASTERBUILD $NT_MASTERBUILD" + NT_MASTERDIR=${D2}/${NT_MASTERBUILD} + fi + fi + Debug "NT_MASTERDIR $NT_MASTERDIR" } ################################### set_dirs ########################### @@ -238,63 +237,63 @@ find_nt_masterbuild() set_dirs() { #O_LOCAL - if [ "$O_WIN" = "ON" ] - then - win_set_dirs - else - D1=/h/hs-sca15c/export/builds/mccrel/nss/nss$NSSVER - D3=${D2}/${MASTERBUILD} - UXDIST=${D3}/mozilla/dist - RESULTDIR=${D3}/mozilla/tests_results/security - fi + if [ "$O_WIN" = "ON" ] + then + win_set_dirs + else + D1=/h/hs-sca15c/export/builds/mccrel/nss/nss$NSSVER + D3=${D2}/${MASTERBUILD} + UXDIST=${D3}/mozilla/dist + RESULTDIR=${D3}/mozilla/tests_results/security + fi - D2=${D1}/builds/${QAYEAR}${BUILDDATE}.${BUILDNUMBER} - UX_MASTERDIR=${D2}/${MASTERBUILD} - find_nt_masterbuild + D2=${D1}/builds/${QAYEAR}${BUILDDATE}.${BUILDNUMBER} + UX_MASTERDIR=${D2}/${MASTERBUILD} + find_nt_masterbuild - UXDIST=${UX_MASTERDIR}/mozilla/dist - NTDIST=${NT_MASTERDIR}/mozilla/dist + UXDIST=${UX_MASTERDIR}/mozilla/dist + NTDIST=${NT_MASTERDIR}/mozilla/dist - RESULTDIR=${UX_MASTERDIR}/mozilla/tests_results/security + RESULTDIR=${UX_MASTERDIR}/mozilla/tests_results/security #O_LOCAL - if [ "$O_WIN" = "ON" ] - then - MASTERBUILD=$NT_MASTERBUILD - MOZILLA_ROOT=${NT_MASTERDIR}/mozilla - else - MOZILLA_ROOT=${UX_MASTERDIR}/mozilla - fi - - TESTSCRIPTDIR=${MOZILLA_ROOT}/security/nss/tests - - if [ ! -d $TESTSCRIPTDIR ] - then - if [ "$O_WIN" = "ON" -a "$WIN_WAIT_FOREVER" = "ON" ] - then - WaitForever $TESTSCRIPTDIR/all.sh 1 - else - Exit "Test directory $TESTSCRIPTDIR does not exist" - fi - fi - - COMMON=${TESTSCRIPTDIR}/common - - set_objdir - - - Debug "NTDIST $NTDIST" - Debug "UXDIST $UXDIST" - Debug "TESTSCRIPTDIR $TESTSCRIPTDIR" - Debug "RESULTDIR $RESULTDIR" - Debug "TMP $TMP" - Debug "LOCALDIST_BIN $LOCALDIST_BIN" - Debug "COMMON $COMMON" - Debug "MOZILLA_ROOT $MOZILLA_ROOT" - - export D1 D2 NTDIST UXDIST RESULTDIR TESTSCRIPTDIR - export UX_MASTERDIR NT_MASTERDIR COMMON MOZILLA_ROOT + if [ "$O_WIN" = "ON" ] + then + MASTERBUILD=$NT_MASTERBUILD + MOZILLA_ROOT=${NT_MASTERDIR}/mozilla + else + MOZILLA_ROOT=${UX_MASTERDIR}/mozilla + fi + + TESTSCRIPTDIR=${MOZILLA_ROOT}/security/nss/tests + + if [ ! -d $TESTSCRIPTDIR ] + then + if [ "$O_WIN" = "ON" -a "$WIN_WAIT_FOREVER" = "ON" ] + then + WaitForever $TESTSCRIPTDIR/all.sh 1 + else + Exit "Test directory $TESTSCRIPTDIR does not exist" + fi + fi + + COMMON=${TESTSCRIPTDIR}/common + + set_objdir + + + Debug "NTDIST $NTDIST" + Debug "UXDIST $UXDIST" + Debug "TESTSCRIPTDIR $TESTSCRIPTDIR" + Debug "RESULTDIR $RESULTDIR" + Debug "TMP $TMP" + Debug "LOCALDIST_BIN $LOCALDIST_BIN" + Debug "COMMON $COMMON" + Debug "MOZILLA_ROOT $MOZILLA_ROOT" + + export D1 D2 NTDIST UXDIST RESULTDIR TESTSCRIPTDIR + export UX_MASTERDIR NT_MASTERDIR COMMON MOZILLA_ROOT } ################################### set_files ########################### @@ -302,25 +301,25 @@ set_dirs() ######################################################################## set_files() { - if [ $O_CRONFILE = "ON" ] - then - Debug "attempting to create resultfiles" - NEWFILENAME=$RESULTDIR/$HOST.`basename $0` - if [ ! -d $RESULTDIR ] - then - mkdir -p $RESULTDIR || Exit "Error: can't make $RESULTDIR" - fi - if [ ! -w $RESULTDIR ] ; then - Exit "can't touch $NEWFILENAME" - fi - Debug "About to touch $NEWFILENAME " - touch $NEWFILENAME || Exit "Error: can't touch $NEWFILENAME" - Debug "About to cat $FILENAME >>$NEWFILENAME " - cat $FILENAME >>$NEWFILENAME || Exit "Error: can't append $FILENAME to $NEWFILENAME" - TMPFILES="$TMPFILES $FILENAME" - FILENAME=$NEWFILENAME - Debug "Writing output to $FILENAME" - fi + if [ $O_CRONFILE = "ON" ] + then + Debug "attempting to create resultfiles" + NEWFILENAME=$RESULTDIR/$HOST.`basename $0` + if [ ! -d $RESULTDIR ] + then + mkdir -p $RESULTDIR || Exit "Error: can't make $RESULTDIR" + fi + if [ ! -w $RESULTDIR ] ; then + Exit "can't touch $NEWFILENAME" + fi + Debug "About to touch $NEWFILENAME " + touch $NEWFILENAME || Exit "Error: can't touch $NEWFILENAME" + Debug "About to cat $FILENAME >>$NEWFILENAME " + cat $FILENAME >>$NEWFILENAME || Exit "Error: can't append $FILENAME to $NEWFILENAME" + TMPFILES="$TMPFILES $FILENAME" + FILENAME=$NEWFILENAME + Debug "Writing output to $FILENAME" + fi } ################################### eval_opts ########################## @@ -329,15 +328,15 @@ set_files() ######################################################################## write_to_tmpfile() { - O_CRONFILE=ON - Debug "Writing to the TMPFILE" - O_FILE=ON - FILENAME=${TMP}/nsstmp.$$ # for now write to the temporary file - # since we don't know the hostname yet - # will be inserted to the real file later - TMPFILES="$TMPFILES nsstmp.$$" - touch $FILENAME || Exit "Error: can't touch $FILENAME" - Debug "Writing output to $FILENAME" + O_CRONFILE=ON + Debug "Writing to the TMPFILE" + O_FILE=ON + FILENAME=${TMP}/nsstmp.$$ # for now write to the temporary file + # since we don't know the hostname yet + # will be inserted to the real file later + TMPFILES="$TMPFILES nsstmp.$$" + touch $FILENAME || Exit "Error: can't touch $FILENAME" + Debug "Writing output to $FILENAME" } ################################### eval_opts ########################## @@ -346,107 +345,107 @@ write_to_tmpfile() ######################################################################## eval_opts() { -while [ -n "$1" ] -do - case $1 in - -cron) - O_CRON=ON - O_SILENT=ON - O_DEBUG=ON # FIXME take out! - O_ALWAYS_YES=ON - write_to_tmpfile - - export O_CRON - ;; - -l) - O_LOCAL=ON #Now what - - shift - MOZROOT=$1 - if [ -z "$MOZROOT" ] - then - glob_usage "Error: -l requires a directory to follow, for example $HOME/src/tip1025 " - fi - Warning "-l not implemented yet (or only halfway)" - Debug "testing locally on $MOZROOT" - ;; - -S*|-s*) - O_SILENT=ON - ;; - -Y*|-y) - O_ALWAYS_YES=ON - ;; - -d*|-D) - O_DEBUG=ON - #set -x - ;; - -m*|-M*) - O_MAIL=ON - shift - MAILINGLIST=$1 - if [ -z "$MAILINGLIST" ] - then - glob_usage "Error: -m requires a mailinglist to follow, for example sonmi,wtc,nelsonb " - fi - Debug "Sending result to $MAILINGLIST" - ;; - -fcron*|-F[Cc][Rr][Oo][Nn]*) - write_to_tmpfile - ;; - -f|-F) - O_FILE=ON - shift - FILENAME=$1 - if [ -z "$FILENAME" ] - then - glob_usage "Error: -f requires a filename to follow" - fi - #rm -f $FILENAME 2>/dev/null - touch $FILENAME || Exit "Error: can't touch $FILENAME" - #NOTE we append rather that creating - Debug "Writing output to $FILENAME" - ;; - -h|-help|"-?") - glob_usage - ;; - -*) - glob_usage "Error: Can't handle option $1" - ;; - ?*) - NSSVER=$1 - if [ -z "$NSSVER" ] - then - NSSVER="tip" - Debug "NSS Version: Parameters missing - defaulting to tip!" - else - BUILDDATE=$2 - if [ -z "$BUILDDATE" ] - then - BUILDDATE=`date +%m%d` - Debug "Builddate: Parameters missing - defaulting to today!" - else - shift - fi - fi - ;; - esac - shift -done - -Debug "Builddate $BUILDDATE NssVersion $NSSVER" - -if [ -z "$BUILDDATE" ] -then - BUILDDATE=`date +%m%d` - Debug "Builddate: Parameters missing - defaulting to today!" -fi -if [ -z "$NSSVER" ] -then - NSSVER="tip" - Debug "NSS Version: Parameters missing - defaulting to tip!" -fi - -Debug "Builddate $BUILDDATE NssVersion $NSSVER" -export BUILDDATE NSSVER + while [ -n "$1" ] + do + case $1 in + -cron) + O_CRON=ON + O_SILENT=ON + O_DEBUG=ON # FIXME take out! + O_ALWAYS_YES=ON + write_to_tmpfile + + export O_CRON + ;; + -l) + O_LOCAL=ON #Now what - + shift + MOZROOT=$1 + if [ -z "$MOZROOT" ] + then + glob_usage "Error: -l requires a directory to follow, for example $HOME/src/tip1025 " + fi + Warning "-l not implemented yet (or only halfway)" + Debug "testing locally on $MOZROOT" + ;; + -S*|-s*) + O_SILENT=ON + ;; + -Y*|-y) + O_ALWAYS_YES=ON + ;; + -d*|-D) + O_DEBUG=ON + #set -x + ;; + -m*|-M*) + O_MAIL=ON + shift + MAILINGLIST=$1 + if [ -z "$MAILINGLIST" ] + then + glob_usage "Error: -m requires a mailinglist to follow, for example sonmi,wtc,nelsonb " + fi + Debug "Sending result to $MAILINGLIST" + ;; + -fcron*|-F[Cc][Rr][Oo][Nn]*) + write_to_tmpfile + ;; + -f|-F) + O_FILE=ON + shift + FILENAME=$1 + if [ -z "$FILENAME" ] + then + glob_usage "Error: -f requires a filename to follow" + fi + #rm -f $FILENAME 2>/dev/null + touch $FILENAME || Exit "Error: can't touch $FILENAME" + #NOTE we append rather that creating + Debug "Writing output to $FILENAME" + ;; + -h|-help|"-?") + glob_usage + ;; + -*) + glob_usage "Error: Can't handle option $1" + ;; + ?*) + NSSVER=$1 + if [ -z "$NSSVER" ] + then + NSSVER="tip" + Debug "NSS Version: Parameters missing - defaulting to tip!" + else + BUILDDATE=$2 + if [ -z "$BUILDDATE" ] + then + BUILDDATE=`date +%m%d` + Debug "Builddate: Parameters missing - defaulting to today!" + else + shift + fi + fi + ;; + esac + shift + done + + Debug "Builddate $BUILDDATE NssVersion $NSSVER" + + if [ -z "$BUILDDATE" ] + then + BUILDDATE=`date +%m%d` + Debug "Builddate: Parameters missing - defaulting to today!" + fi + if [ -z "$NSSVER" ] + then + NSSVER="tip" + Debug "NSS Version: Parameters missing - defaulting to tip!" + fi + + Debug "Builddate $BUILDDATE NssVersion $NSSVER" + export BUILDDATE NSSVER } ######################### win_set_dirs ################################ @@ -455,44 +454,44 @@ export BUILDDATE NSSVER ######################################################################## win_set_dirs() { - Debug "set Windows Directories..." - TMP=`echo "$TMP" | sed -e 's/\\\/\//g'` - Debug "TMP reformated to $TMP" - if [ "$O_CYGNUS" = ON ] - then - D1=/cygdrive/w/nss/nss$NSSVER - else - D1=w:/nss/nss$NSSVER - fi - if [ ! -w $D1 ] - then - Echo "Windows special... can't write in $D1" - if [ "$O_CYGNUS" = ON ] - then - D1=/cygdrive/u/nss/nss$NSSVER - else - D1="u:/nss/nss$NSSVER" - fi - else - Debug "D1 set to $D1" - return - fi - - while [ ! -w $D1 ] - do - if [ "$O_CRONFILE" = "ON" ] - then - Exit "cant write in $D1" - fi - Warning "cant write in $D1" - Echo "input start directory (u:/nss, d:/src/nss, f:/shared/nss) " - read D - if [ -n "$D" ] - then - D1=$D/nss$NSSVER - fi - done - Debug "D1 set to $D1" + Debug "set Windows Directories..." + TMP=`echo "$TMP" | sed -e 's/\\\/\//g'` + Debug "TMP reformated to $TMP" + if [ "$O_CYGNUS" = ON ] + then + D1=/cygdrive/w/nss/nss$NSSVER + else + D1=w:/nss/nss$NSSVER + fi + if [ ! -w $D1 ] + then + Echo "Windows special... can't write in $D1" + if [ "$O_CYGNUS" = ON ] + then + D1=/cygdrive/u/nss/nss$NSSVER + else + D1="u:/nss/nss$NSSVER" + fi + else + Debug "D1 set to $D1" + return + fi + + while [ ! -w $D1 ] + do + if [ "$O_CRONFILE" = "ON" ] + then + Exit "cant write in $D1" + fi + Warning "cant write in $D1" + Echo "input start directory (u:/nss, d:/src/nss, f:/shared/nss) " + read D + if [ -n "$D" ] + then + D1=$D/nss$NSSVER + fi + done + Debug "D1 set to $D1" } ########################### set_host ################################## @@ -501,71 +500,71 @@ win_set_dirs() ######################################################################## set_host() { - set_host_done=0 - - if [ $DS_WAS_SET = FALSE ] #give chance to overwrite, espec. for NT - then - Debug "Domainname was not set..." - DOMSUF=`domainname 2>/dev/null` - if [ -z "$DOMSUF" ] - then - Debug "domainname command did not work ..." - DOMSUF=`echo $HOST | grep '\.' | sed -e "s/[^\.]*\.//"` - - if [ -z "$DOMSUF" ] - then - Debug "Domainname not part of the hostname" - DOMSUF=`cat /etc/defaultdomain 2>/dev/null` - if [ -z "$DOMSUF" ] - then - Debug "Domainname needs to be hardcoded to red.iplanet.com" - DOMSUF="red.iplanet.com" - fi - fi - fi - fi - case $HOST in - *\.*) - Debug "HOSTNAME $HOST contains Dot" - HOST=`echo $HOST | sed -e "s/\..*//"` - ;; - esac - if [ -z "$HOST" ] - then - HOST=`uname -n` - case $HOST in - *\.*) - Debug "HOSTNAME $HOST contains Dot" - HOST=`echo $HOST | sed -e "s/\..*//"` - ;; - esac - fi - if [ $O_DEBUG = "ON" ] - then - while [ $set_host_done -eq 0 ] - do - Echo - ask "DOMSUF=$DOMSUF, HOST=$HOST - OK", "y" "n" && - set_host_done=1 - if [ $set_host_done -eq 0 ] - then - Echo "input DOMSUF: " - read D - if [ -n "$D" ] - then - DOMSUF=$D - fi - Echo "input HOST: " - read H - if [ -n "$H" ] - then - HOST=$H - fi - fi - done - fi - export HOST DOMSUF - Debug "HOST: $HOST, DOMSUF: $DOMSUF" + set_host_done=0 + + if [ $DS_WAS_SET = FALSE ] #give chance to overwrite, espec. for NT + then + Debug "Domainname was not set..." + DOMSUF=`domainname 2>/dev/null` + if [ -z "$DOMSUF" ] + then + Debug "domainname command did not work ..." + DOMSUF=`echo $HOST | grep '\.' | sed -e "s/[^\.]*\.//"` + + if [ -z "$DOMSUF" ] + then + Debug "Domainname not part of the hostname" + DOMSUF=`cat /etc/defaultdomain 2>/dev/null` + if [ -z "$DOMSUF" ] + then + Debug "Domainname needs to be hardcoded to red.iplanet.com" + DOMSUF="red.iplanet.com" + fi + fi + fi + fi + case $HOST in + *\.*) + Debug "HOSTNAME $HOST contains Dot" + HOST=`echo $HOST | sed -e "s/\..*//"` + ;; + esac + if [ -z "$HOST" ] + then + HOST=`uname -n` + case $HOST in + *\.*) + Debug "HOSTNAME $HOST contains Dot" + HOST=`echo $HOST | sed -e "s/\..*//"` + ;; + esac + fi + if [ $O_DEBUG = "ON" ] + then + while [ $set_host_done -eq 0 ] + do + Echo + ask "DOMSUF=$DOMSUF, HOST=$HOST - OK", "y" "n" && + set_host_done=1 + if [ $set_host_done -eq 0 ] + then + Echo "input DOMSUF: " + read D + if [ -n "$D" ] + then + DOMSUF=$D + fi + Echo "input HOST: " + read H + if [ -n "$H" ] + then + HOST=$H + fi + fi + done + fi + export HOST DOMSUF + Debug "HOST: $HOST, DOMSUF: $DOMSUF" } #-----------------------------# UTILS #---------------------------------- @@ -575,25 +574,25 @@ set_host() ######################################################################## set_objdir() { - OBJDIR=`cd ${TESTSCRIPTDIR}/common; gmake objdir_name` - OS_ARCH=`cd ${TESTSCRIPTDIR}/common; gmake os_arch` - - #at this point $MASTEBUILD is be either NT or unix + OBJDIR=`cd ${TESTSCRIPTDIR}/common; gmake objdir_name` + OS_ARCH=`cd ${TESTSCRIPTDIR}/common; gmake os_arch` + + #at this point $MASTEBUILD is be either NT or unix - LOCALDIST=${D1}/builds/${QAYEAR}${BUILDDATE}.${BUILDNUMBER}/${MASTERBUILD}/mozilla/dist - LOCALDIST_BIN=${LOCALDIST}/${OBJDIR}/bin + LOCALDIST=${D1}/builds/${QAYEAR}${BUILDDATE}.${BUILDNUMBER}/${MASTERBUILD}/mozilla/dist + LOCALDIST_BIN=${LOCALDIST}/${OBJDIR}/bin - DIST=$LOCALDIST + DIST=$LOCALDIST #FIXME - test so PATH won't contai it double - PATH=$TESTSCRIPTDIR:$LOCALDIST_BIN:$BASEPATH - PATH_CONTAINS_BIN="TRUE" - export PATH_CONTAINS_BIN - Debug "Path after set_objdir $PATH" + PATH=$TESTSCRIPTDIR:$LOCALDIST_BIN:$BASEPATH + PATH_CONTAINS_BIN="TRUE" + export PATH_CONTAINS_BIN + Debug "Path after set_objdir $PATH" - Debug "PATH $PATH" + Debug "PATH $PATH" - export OBJDIR OS_ARCH LOCALDIST LOCALDIST_BIN DIST PATH + export OBJDIR OS_ARCH LOCALDIST LOCALDIST_BIN DIST PATH } ########################### Ps ######################################### # global shell function , attempts a platform specific ps @@ -603,12 +602,12 @@ Ps() #AIX, OSF ps -ef, solaris /usr/5bin/ps -ef, win ps -ef but no user id #linux ps -ef, HP - if [ $os_name = "SunOS" ] - then - /usr/5bin/ps -ef - else - ps -ef - fi + if [ $os_name = "SunOS" ] + then + /usr/5bin/ps -ef + else + ps -ef + fi } ########################### kill_by_name ################################ @@ -617,30 +616,30 @@ Ps() ######################################################################## kill_by_name() { - for PID in `Ps | grep "$1" | grep -v grep | \ - sed -e "s/^ *//g" -e "s/^[^ ]* //" -e "s/^ *//g" -e "s/ .*//g"` - do - if [ $O_WIN = "ON" -a $O_CYGNUS = "ON" ] - then - ask "Do you want to kill Process $PID (`Ps | grep $PID | \ - grep -v grep | awk '{ print $1, $2, $6, $7, $8, $9 }' | \ - sed -e "s/[0-9]:[0-6][0-9]//g" | grep $PID `)" \ - "y" "n" && { - kill $PID - sleep 1 - kill -9 $PID 2>/dev/null - } - else - ask "Do you want to kill Process $PID (`Ps | grep $PID | \ - grep -v grep | awk '{ print $1, $2, $8, $9, $10, $11 }' | \ - sed -e "s/[0-9]:[0-6][0-9]//g" | grep $PID `)" \ - "y" "n" && { - kill $PID - sleep 1 - kill -9 $PID 2>/dev/null - } - fi - done + for PID in `Ps | grep "$1" | grep -v grep | \ + sed -e "s/^ *//g" -e "s/^[^ ]* //" -e "s/^ *//g" -e "s/ .*//g"` + do + if [ $O_WIN = "ON" -a $O_CYGNUS = "ON" ] + then + ask "Do you want to kill Process $PID (`Ps | grep $PID | \ + grep -v grep | awk '{ print $1, $2, $6, $7, $8, $9 }' | \ + sed -e "s/[0-9]:[0-6][0-9]//g" | grep $PID `)" \ + "y" "n" && { + kill $PID + sleep 1 + kill -9 $PID 2>/dev/null + } + else + ask "Do you want to kill Process $PID (`Ps | grep $PID | \ + grep -v grep | awk '{ print $1, $2, $8, $9, $10, $11 }' | \ + sed -e "s/[0-9]:[0-6][0-9]//g" | grep $PID `)" \ + "y" "n" && { + kill $PID + sleep 1 + kill -9 $PID 2>/dev/null + } + fi + done } ############################### early_exit ################################### @@ -650,27 +649,27 @@ kill_by_name() early_exit() { - if [ -z "$DOCDIR" ] - then - DOCDIR=`dirname $0`/../doc - fi - if [ -f $DOCDIR/QAerror.html ] - then - Debug "Found QA errorheader" - rm ${FILENAME}.err 2>/dev/null - cp $DOCDIR/QAerror.html ${FILENAME}.err - echo "$1" >>${FILENAME}.err - echo '</font></b></h1>' >>${FILENAME}.err - if [ -n "$FILENAME" -a -f "$FILENAME" ] - then - cat $FILENAME | sed -e "s/^/<br>/" >>${FILENAME}.err - fi - echo '</body></html>' >>${FILENAME}.err - cat ${FILENAME}.err | rmail $MAILINGLIST - - rm ${FILENAME}.err 2>/dev/null - #echo "cat ${FILENAME}.err | rmail $MAILINGLIST " - fi + if [ -z "$DOCDIR" ] + then + DOCDIR=`dirname $0`/../doc + fi + if [ -f $DOCDIR/QAerror.html ] + then + Debug "Found QA errorheader" + rm ${FILENAME}.err 2>/dev/null + cp $DOCDIR/QAerror.html ${FILENAME}.err + echo "$1" >>${FILENAME}.err + echo '</font></b></h1>' >>${FILENAME}.err + if [ -n "$FILENAME" -a -f "$FILENAME" ] + then + cat $FILENAME | sed -e "s/^/<br>/" >>${FILENAME}.err + fi + echo '</body></html>' >>${FILENAME}.err + cat ${FILENAME}.err | rmail $MAILINGLIST + + rm ${FILENAME}.err 2>/dev/null + #echo "cat ${FILENAME}.err | rmail $MAILINGLIST " + fi } ############################### Exit ################################### @@ -680,45 +679,45 @@ early_exit() ######################################################################## Exit() { - Echo $1 - if [ "$O_CRON" = "OFF" ] - then - echo $1 >&2 - fi - if [ -f "${KILLPIDS}" ] - then - Debug "Attempting to kill background processes...`cat ${KILLPIDS}`" - kill `cat "${KILLPIDS}"` - sleep 1 - kill -9 `cat "${KILLPIDS}"` - fi - if [ -n "${TMPFILES}" ] - then - Debug "rm -f ${TMPFILES}" - rm -f $TMPFILES 2>/dev/null - fi - O_ALWAYS_YES=ON # set to non-interactive - don't ask anymore questions here - if [ $KILL_SELFSERV = "ON" ] - then - kill_by_name selfserv - fi - if [ $O_MAIL = "ON" -a $O_FILE = "ON" ] - then - if [ $EARLY_EXIT = TRUE ] #before the report file has been created - then - early_exit "$1" - elif [ -n "$FILENAME" -a -f "$FILENAME" ] - then - cat $FILENAME | rmail $MAILINGLIST - fi - rm $FILENAME 2>/dev/null - elif [ $O_MAIL = "ON" -a $EARLY_EXIT = TRUE ] - then - early_exit "$1" - rm $FILENAME 2>/dev/null - fi - #chmod a+rw ${RESULTDIR} ${RESULTDIR}/* ${RESULTDIR}/*/* & - exit + Echo $1 + if [ "$O_CRON" = "OFF" ] + then + echo $1 >&2 + fi + if [ -f "${KILLPIDS}" ] + then + Debug "Attempting to kill background processes...`cat ${KILLPIDS}`" + kill `cat "${KILLPIDS}"` + sleep 1 + kill -9 `cat "${KILLPIDS}"` + fi + if [ -n "${TMPFILES}" ] + then + Debug "rm -f ${TMPFILES}" + rm -f $TMPFILES 2>/dev/null + fi + O_ALWAYS_YES=ON # set to non-interactive - don't ask anymore questions here + if [ $KILL_SELFSERV = "ON" ] + then + kill_by_name selfserv + fi + if [ $O_MAIL = "ON" -a $O_FILE = "ON" ] + then + if [ $EARLY_EXIT = TRUE ] #before the report file has been created + then + early_exit "$1" + elif [ -n "$FILENAME" -a -f "$FILENAME" ] + then + cat $FILENAME | rmail $MAILINGLIST + fi + rm $FILENAME 2>/dev/null + elif [ $O_MAIL = "ON" -a $EARLY_EXIT = TRUE ] + then + early_exit "$1" + rm $FILENAME 2>/dev/null + fi + #chmod a+rw ${RESULTDIR} ${RESULTDIR}/* ${RESULTDIR}/*/* & + exit } trap "rm -f ${TMPFILES} 2>/dev/null; Exit 'killed... cleaning up...'" 2 3 15 @@ -729,31 +728,31 @@ trap "rm -f ${TMPFILES} 2>/dev/null; Exit 'killed... cleaning up...'" 2 3 15 # for it to be created. # uses the variables WAIT_FOR and WAIT_TIMES # WAIT_FOR: if waiting for an event sleep n seconds before rechecking -# recomended value 10 minutes 600 +# recomended value 10 minutes 600 # WAIT_TIMES: recheck n times before giving up to prevent endless loop -# recomended 30 - total of 5h +# recomended 30 - total of 5h ######################################################################## Wait() { - i=0 - Debug "Waiting for $1" - while [ $i -lt $WAIT_TIMES ] - do - i=`expr $i + 1` - if [ -f "$1" -a $2 -eq 1 ] # if file exists and is supposed to - then - return - fi - if [ ! -f "$1" -a $2 -eq 0 ] # not exists and not supposed to exist - then - return - fi - Debug "Waiting for $1, loop #$i, about to sleep $WAIT_FOR seconds zzzz..." - sleep $WAIT_FOR - done - TOTAL=`expr $WAIT_TIMES \* $WAIT_FOR / 60` - Exit "I HAVE WAITED LONG ENOUGH FOR $1 NOW, I'M GONE! (THAT WAS A TOTAL OF $TOTAL MINUTES) I have better things to do... " + i=0 + Debug "Waiting for $1" + while [ $i -lt $WAIT_TIMES ] + do + i=`expr $i + 1` + if [ -f "$1" -a $2 -eq 1 ] # if file exists and is supposed to + then + return + fi + if [ ! -f "$1" -a $2 -eq 0 ] # not exists and not supposed to exist + then + return + fi + Debug "Waiting for $1, loop #$i, about to sleep $WAIT_FOR seconds zzzz..." + sleep $WAIT_FOR + done + TOTAL=`expr $WAIT_TIMES \* $WAIT_FOR / 60` + Exit "I HAVE WAITED LONG ENOUGH FOR $1 NOW, I'M GONE! (THAT WAS A TOTAL OF $TOTAL MINUTES) I have better things to do... " } ################################ WaitForever ################################## @@ -765,31 +764,31 @@ Wait() WaitForever() { - i=0 - Debug "Waiting for $1" - TOTAL=0 - while [ 1 ] - do - i=`expr $i + 1` - if [ -f "$1" -a $2 -eq 1 ] # if file exists and is supposed to - then - return - fi - if [ ! -f "$1" -a $2 -eq 0 ] # not exists and not supposed to exist - then - return - fi - Debug "Waiting for $1, loop #$i, about to sleep $WAIT_FOR seconds Total $TOTAL" - sleep $WAIT_FOR - TOTAL=`expr $i \* $WAIT_FOR / 60` - if [ -n "$MAX_FOREVER" ] # we are cheating. Forever can be very short... - then - if [ "$TOTAL" -gt "$MAX_FOREVER" ] - then - Exit "I HAVE WAITED LONG ENOUGH FOR $1 NOW, I'M GONE! (THAT WAS A TOTAL OF $TOTAL MINUTES) I have better things to do... " - fi - fi - done + i=0 + Debug "Waiting for $1" + TOTAL=0 + while [ 1 ] + do + i=`expr $i + 1` + if [ -f "$1" -a $2 -eq 1 ] # if file exists and is supposed to + then + return + fi + if [ ! -f "$1" -a $2 -eq 0 ] # not exists and not supposed to exist + then + return + fi + Debug "Waiting for $1, loop #$i, about to sleep $WAIT_FOR seconds Total $TOTAL" + sleep $WAIT_FOR + TOTAL=`expr $i \* $WAIT_FOR / 60` + if [ -n "$MAX_FOREVER" ] # we are cheating. Forever can be very short... + then + if [ "$TOTAL" -gt "$MAX_FOREVER" ] + then + Exit "I HAVE WAITED LONG ENOUGH FOR $1 NOW, I'M GONE! (THAT WAS A TOTAL OF $TOTAL MINUTES) I have better things to do... " + fi + fi + done } ################################### is_running ######################### # global shell function , implements primitive locking mechanism @@ -799,15 +798,15 @@ WaitForever() ######################################################################## is_running() { - Debug "Testing if $0 is already running... file ${1} - ${1}.$$" - if [ -f ${1}.* ] - then - Exit "$0 seems to be running already ($1 exists) - Exiting" - fi - TMPFILES="$TMPFILES ${1}.$$" - echo "running $0 on `date` PID $$" >${1}.$$ - Debug "wrote \"running $0 on `date` PID $$\" to ${1}.$$" - + Debug "Testing if $0 is already running... file ${1} - ${1}.$$" + if [ -f ${1}.* ] + then + Exit "$0 seems to be running already ($1 exists) - Exiting" + fi + TMPFILES="$TMPFILES ${1}.$$" + echo "running $0 on `date` PID $$" >${1}.$$ + Debug "wrote \"running $0 on `date` PID $$\" to ${1}.$$" + } #---------------------------# USERCOM #--------------------------------- @@ -819,15 +818,15 @@ is_running() ######################################################################## Echo () { - if [ $O_SILENT = OFF ] - then - echo "$*" - #/usr/bin/echo "$*" - fi - if [ $O_FILE = ON ] - then - echo "$*" >>$FILENAME - fi + if [ $O_SILENT = OFF ] + then + echo "$*" + #/usr/bin/echo "$*" + fi + if [ $O_FILE = ON ] + then + echo "$*" >>$FILENAME + fi } ################################### ask ################################ @@ -835,59 +834,59 @@ Echo () # on the 1st choice, 1 on the 2nd choice # # PARAMETERS: -# $1 question text -# $2 1st choice -# $3 2nd choice +# $1 question text +# $2 1st choice +# $3 2nd choice # # MODIFIERS: -# -y O_ALWAYS_YES will assume a first choice always (not neccessaryly "y") +# -y O_ALWAYS_YES will assume a first choice always (not neccessaryly "y") # # RETURN: -# 0 - User picked 1st choice -# 1 - User picked 2nd choice +# 0 - User picked 1st choice +# 1 - User picked 2nd choice # # EXAMPLE -# ask "Would you like to continue" "y" "n" || Exit -# will produce the string "Would you like to continue (y/n) ?", -# read input from keyboard (or assume a yes with option -y) -# - on a yes it will return 0, on a no it will return 1, the -# shell interprets it as error and the || Exit will be executed +# ask "Would you like to continue" "y" "n" || Exit +# will produce the string "Would you like to continue (y/n) ?", +# read input from keyboard (or assume a yes with option -y) +# - on a yes it will return 0, on a no it will return 1, the +# shell interprets it as error and the || Exit will be executed # # NOTE: NEVER use "n" as the second parameter - it will mess up -y -# don't ask "Continue" "n" "y" || Exit # it will Exit on a "y" +# don't ask "Continue" "n" "y" || Exit # it will Exit on a "y" # ######################################################################## Ask() { - ask $* + ask $* } ask() { - if [ $O_ALWAYS_YES = ON ] - then - Echo "$1 ($2/$3) ?" - Echo "YES!" - return 0 - fi - A="" - while [ 1 ] - do - - Echo "$1 ($2/$3) ?" - read A - if [ -n "$A" ] - then - if [ $A = $2 ] - then - return 0 - elif [ $A = $3 ] - then - return 1 - fi - fi - done - return 0 + if [ $O_ALWAYS_YES = ON ] + then + Echo "$1 ($2/$3) ?" + Echo "YES!" + return 0 + fi + A="" + while [ 1 ] + do + + Echo "$1 ($2/$3) ?" + read A + if [ -n "$A" ] + then + if [ $A = $2 ] + then + return 0 + elif [ $A = $3 ] + then + return 1 + fi + fi + done + return 0 } ################################### Warning ############################ @@ -897,7 +896,7 @@ ask() ######################################################################## Warning () { - ask "WARNING: $0: \n $* continue " "y" "n" || Exit + ask "WARNING: $0: \n $* continue " "y" "n" || Exit } ################################### Debug ############################ @@ -905,10 +904,10 @@ Warning () ######################################################################## Debug() { - if [ $O_DEBUG = ON ] - then - Echo "DEBUG: (`date +%H:%M`) $0: $*" - fi + if [ $O_DEBUG = ON ] + then + Echo "DEBUG: (`date +%H:%M`) $0: $*" + fi } ################################### line ############################### @@ -926,24 +925,24 @@ Echo ######################################################################## opt_usage() { - if [ $O_OPTIONS = "ON" ] - then - Echo - line - Echo - Echo " -y answer all questions with y - use at your own risk..." - Echo " -s silent (only usefull with -y)" - Echo " -h, -? - you guessed right - displays this text" - Echo " -d debug" - Echo " -f <filename> - write the (error)output to filename" - Echo " -fcronfile produces the resultfiles in the same locations" - Echo " as would have been produced with -cron" - Echo " -m <mailinglist> - send filename to mailinglist (csl " - Echo " example sonmi,nelsonb,wtc) only useful with -f" - Echo " -cron equivalient to -y -s -d -f \$RESULTDIR/\$HOST.nssqa" - Echo " -l <mozroot> run on a local build" - fi - + if [ $O_OPTIONS = "ON" ] + then + Echo + line + Echo + Echo " -y answer all questions with y - use at your own risk..." + Echo " -s silent (only usefull with -y)" + Echo " -h, -? - you guessed right - displays this text" + Echo " -d debug" + Echo " -f <filename> - write the (error)output to filename" + Echo " -fcronfile produces the resultfiles in the same locations" + Echo " as would have been produced with -cron" + Echo " -m <mailinglist> - send filename to mailinglist (csl " + Echo " example sonmi,nelsonb,wtc) only useful with -f" + Echo " -cron equivalient to -y -s -d -f \$RESULTDIR/\$HOST.nssqa" + Echo " -l <mozroot> run on a local build" + fi + } ################################### glob_usage ######################### @@ -951,82 +950,43 @@ opt_usage() ######################################################################## glob_usage() { - line - Echo $1 - Echo - if [ $O_OPTIONS = "ON" ] - then - Echo "usage $0 [options] nssversion builddate" - else - Echo "usage $0 nssversion builddate" - fi - - Echo " for example: $0 30b 0926" - Echo " $0 31 1002" - opt_usage - Echo - Exit "$1" + line + Echo $1 + Echo + if [ $O_OPTIONS = "ON" ] + then + Echo "usage $0 [options] nssversion builddate" + else + Echo "usage $0 nssversion builddate" + fi + + Echo " for example: $0 30b 0926" + Echo " $0 31 1002" + opt_usage + Echo + Exit "$1" } tell() { - if [ $O_SILENT = OFF ] - then - line - pwd - ls -CF - line - fi - if [ $O_FILE = ON ] - then - line - pwd >>$FILENAME - ls -CF >>$FILENAME - line - fi + if [ $O_SILENT = OFF ] + then + line + pwd + ls -CF + line + fi + if [ $O_FILE = ON ] + then + line + pwd >>$FILENAME + ls -CF >>$FILENAME + line + fi } - -#set_host() -#{ - #set_host_done=0 - #HOST=`echo $HOST | sed -e "s/.red.iplanet.com//"` - #DOMSUF=`cat /etc/defaultdomain 2>/dev/null` - #if [ -z "$DOMSUF" ] - #then - #DOMSUF="red.iplanet.com" - #fi - #if [ -z "$HOST" ] - #then - #HOST=`uname -n | sed -e "s/.red.iplanet.com//"` - #fi - #while [ $set_host_done -eq 0 ] - #do - #Echo - #ask "DOMSUF=$DOMSUF, HOST=$HOST - OK", "y" "n" && - #set_host_done=1 - #if [ $set_host_done -eq 0 ] - #then - #Echo "input DOMSUF: " - #read D - #if [ -n "$D" ] - #then - #DOMSUF=$D - #fi - #Echo "input HOST: " - #read H - #if [ -n "$H" ] - #then - #HOST=$H - #fi - #fi - #done - #export HOST DOMSUF - #Debug "HOST: $HOST, DOMSUF: $DOMSUF" -#} - if [ $O_INIT = "ON" ] then - glob_init $* + glob_init $* fi EARLY_EXIT=FALSE diff --git a/security/nss/tests/mksymlinks b/security/nss/tests/mksymlinks index deafee62c..ad27e4e3e 100755 --- a/security/nss/tests/mksymlinks +++ b/security/nss/tests/mksymlinks @@ -13,50 +13,50 @@ fi if [ -d "$D1" ] then - cd $D1 + cd $D1 else - glob_usage "cant cd to $D1 Exiting" + glob_usage "cant cd to $D1 Exiting" fi if [ -d "$NTDIST" ] then - cd $NTDIST - ln -s WINNT4.0_DBG.OBJ WINNT5.0_DBG.OBJ - ln -s WINNT4.0_DBG.OBJD WINNT5.0_DBG.OBJD - ln -s WINNT4.0_OPT.OBJ WINNT5.0_OPT.OBJ - - #ln -s WIN954.0_DBG.OBJD WIN954.0_DBG.OBJ - #ln -s WINNT4.0_DBG.OBJD WINNT4.0_DBG.OBJ - #ln -s WINNT5.0_DBG.OBJD WINNT5.0_DBG.OBJ - tell + cd $NTDIST + ln -s WINNT4.0_DBG.OBJ WINNT5.0_DBG.OBJ + ln -s WINNT4.0_DBG.OBJD WINNT5.0_DBG.OBJD + ln -s WINNT4.0_OPT.OBJ WINNT5.0_OPT.OBJ + + #ln -s WIN954.0_DBG.OBJD WIN954.0_DBG.OBJ + #ln -s WINNT4.0_DBG.OBJD WINNT4.0_DBG.OBJ + #ln -s WINNT5.0_DBG.OBJD WINNT5.0_DBG.OBJ + tell else - Echo "WARNING!!! cant cd to $NTDIST " + Echo "WARNING!!! cant cd to $NTDIST " fi if [ -d "$UXDIST" ] then - cd $UXDIST + cd $UXDIST else - glob_usage "Error!!! cant cd to $UXDIST " + glob_usage "Error!!! cant cd to $UXDIST " fi ErrorFlag=0 if [ ! -h OSF1V5.0_DBG.OBJ ] then - ln -s OSF1V4.0D_DBG.OBJ OSF1V5.0_DBG.OBJ || ErrorFlag=1 + ln -s OSF1V4.0D_DBG.OBJ OSF1V5.0_DBG.OBJ || ErrorFlag=1 fi if [ ! -h OSF1V5.0_OPT.OBJ ] then - ln -s OSF1V4.0D_OPT.OBJ OSF1V5.0_OPT.OBJ || ErrorFlag=1 + ln -s OSF1V4.0D_OPT.OBJ OSF1V5.0_OPT.OBJ || ErrorFlag=1 fi if [ ! -h SunOS5.8_DBG.OBJ ] then - ln -s SunOS5.6_DBG.OBJ SunOS5.8_DBG.OBJ || ErrorFlag=1 + ln -s SunOS5.6_DBG.OBJ SunOS5.8_DBG.OBJ || ErrorFlag=1 fi if [ ! -h SunOS5.8_OPT.OBJ ] then - ln -s SunOS5.6_OPT.OBJ SunOS5.8_OPT.OBJ || ErrorFlag=1 + ln -s SunOS5.6_OPT.OBJ SunOS5.8_OPT.OBJ || ErrorFlag=1 fi tell diff --git a/security/nss/tests/nssqa b/security/nss/tests/nssqa index 1ccdc26c1..6bac0ce21 100755 --- a/security/nss/tests/nssqa +++ b/security/nss/tests/nssqa @@ -9,18 +9,18 @@ # # parameters # ---------- -# nssversion (supported: 30b, 31, tip) -# builddate (default - today) +# nssversion (supported: 30b, 31, tip) +# builddate (default - today) # # options # ------- -# -y answer all questions with y - use at your own risk...ignores warnings -# -s silent (only usefull with -y) -# -h, -? - you guessed right - displays this text -# -d debug -# -f <filename> - write the (error)output to filename -# -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.nssqa -# -l <mozroot> run on a local build +# -y answer all questions with y - use at your own risk...ignores warnings +# -s silent (only usefull with -y) +# -h, -? - you guessed right - displays this text +# -d debug +# -f <filename> - write the (error)output to filename +# -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.nssqa +# -l <mozroot> run on a local build # # 12/1/00 # took out the (unused) local directory for releasebuild QA on NT @@ -28,27 +28,27 @@ # took hardcoded machinenames out ######################################################################## -O_OPTIONS=ON # accept options (see above for listing) -WIN_SET_LOCALDIRS=ON # run QA in a local directory rather than accross - # the net -WIN_WAIT_FOREVER=ON # first we wait forever for a TESTDIR to appear, than - # we wait forever for the build to finish... +O_OPTIONS=ON # accept options (see above for listing) +WIN_SET_LOCALDIRS=ON # run QA in a local directory rather than accross + # the net +WIN_WAIT_FOREVER=ON # first we wait forever for a TESTDIR to appear, than + # we wait forever for the build to finish... -. `dirname $0`/header # utilities, shellfunctions etc, global to NSS QA +. `dirname $0`/header # utilities, shellfunctions etc, global to NSS QA -is_running ${TMP}/nssqa # checks if the file exists, if yes Exits, if not - # creates to implement a primitive locking mechanism -#if [ $O_CRON = "OFF" -a $O_WIN = "OFF" ] # if we are running from cron - # or on windows this has been done +is_running ${TMP}/nssqa # checks if the file exists, if yes Exits, if not + # creates to implement a primitive locking mechanism +#if [ $O_CRON = "OFF" -a $O_WIN = "OFF" ] # if we are running from cron + # or on windows this has been done #then - #set_host # sets the HOST and DOMSUF variables - carefull, -#fi # hardcoded to redplanet + #set_host # sets the HOST and DOMSUF variables - carefull, +#fi # hardcoded to redplanet -KILL_SELFSERV=ON # cleanup will also kill the leftover selfserv processes +KILL_SELFSERV=ON # cleanup will also kill the leftover selfserv processes -#. `dirname $0`/nssqa.header #derived from init.sh +#. `dirname $0`/nssqa.header #derived from init.sh -TMP_ALL_SH_OUT=${TMP}/nssqa_all_sh_out.$$ #redirecting all.sh's output +TMP_ALL_SH_OUT=${TMP}/nssqa_all_sh_out.$$ #redirecting all.sh's output TMPFILES="$TMPFILES $TMP_ALL_SH_OUT" ################################ check_distdir ######################### @@ -57,65 +57,65 @@ TMPFILES="$TMPFILES $TMP_ALL_SH_OUT" ######################################################################## check_distdir() { - set_objdir + set_objdir - if [ ! -d "$LOCALDIST_BIN" ] - then - Debug "Dist $DIST" - Warning "$LOCALDIST_BIN (the dist binaries dir) does not exist" - return 1 - fi + if [ ! -d "$LOCALDIST_BIN" ] + then + Debug "Dist $DIST" + Warning "$LOCALDIST_BIN (the dist binaries dir) does not exist" + return 1 + fi - if [ ! -d "$LOCALDIST" -a ! -h "$LOCALDIST" ] - then - Debug "Dist $DIST" - Warning "$LOCALDIST (the dist directory) does not exist" - return 1 - fi + if [ ! -d "$LOCALDIST" -a ! -h "$LOCALDIST" ] + then + Debug "Dist $DIST" + Warning "$LOCALDIST (the dist directory) does not exist" + return 1 + fi - Debug "LOCALDIST_BIN $LOCALDIST_BIN" - Debug "Dist $DIST" - return 0 + Debug "LOCALDIST_BIN $LOCALDIST_BIN" + Debug "Dist $DIST" + return 0 } ################################ run_all ############################### # local shell function to start the all.sh after asking user and redirect # the output apropriately ######################################################################## -run_all() +run_all() { - check_distdir || return 1 - kill_by_name selfserv - ask "Testing $OBJDIR continue with all.sh" "y" "n" || Exit + check_distdir || return 1 + kill_by_name selfserv + ask "Testing $OBJDIR continue with all.sh" "y" "n" || Exit - Debug "running all.sh in `pwd`... please be patient :)" - if [ $O_SILENT = ON ] - then - if [ $O_DEBUG = ON -a $O_FILE = ON ] - then - all.sh >>$FILENAME 2>>$FILENAME - else - all.sh >/dev/null 2>/dev/null - fi - else - #if [ $O_FILE = ON ] #FIXME - write to tmp file and copy - #then - #all.sh 2>&1 | tee $TMP_ALL_SH_OUT - #if [ -r $TMP_ALL_SH_OUT ] - #then - #cat $TMP_ALL_SH_OUT >>$FILENAME - #fi - #else - all.sh - #fi - fi - Debug "Done with all.sh " - line + Debug "running all.sh in `pwd`... please be patient :)" + if [ $O_SILENT = ON ] + then + if [ $O_DEBUG = ON -a $O_FILE = ON ] + then + all.sh >>$FILENAME 2>>$FILENAME + else + all.sh >/dev/null 2>/dev/null + fi + else + #if [ $O_FILE = ON ] #FIXME - write to tmp file and copy + #then + #all.sh 2>&1 | tee $TMP_ALL_SH_OUT + #if [ -r $TMP_ALL_SH_OUT ] + #then + #cat $TMP_ALL_SH_OUT >>$FILENAME + #fi + #else + all.sh + #fi + fi + Debug "Done with all.sh " + line } all_sh() { -echo + echo } @@ -124,136 +124,139 @@ echo ######################################################################## nssqa_main() { -# determine if all needed symbolic links are present, in case -# we build on one platform and QA on another + # determine if all needed symbolic links are present, in case + # we build on one platform and QA on another -if [ $O_WIN = "OFF" ] -then - if [ ! -h ${NTDIST}/WINNT5.0_DBG.OBJ -o \ - ! -h ${UXDIST}/SunOS5.8_OPT.OBJ -o \ - ! -h ${UXDIST}/OSF1V5.0_DBG.OBJ ] - then - # create the symbolic links - mksymlinks $* || - glob_usage "Can't make the neccessary symbolic links" - fi -fi - -if [ -d $TESTSCRIPTDIR ] #the directory mozilla/security/nss/tests, -then # where all.sh lives - cd $TESTSCRIPTDIR -else - Exit "cant cd to $TESTSCRIPTDIR Exiting" -fi + if [ $O_WIN = "OFF" ] + then + if [ ! -h ${NTDIST}/WINNT5.0_DBG.OBJ -o \ + ! -h ${UXDIST}/SunOS5.8_OPT.OBJ -o \ + ! -h ${UXDIST}/OSF1V5.0_DBG.OBJ ] + then + # create the symbolic links + mksymlinks $* || + glob_usage "Can't make the neccessary symbolic links" + fi + fi -Debug testing from `pwd` -line + if [ -d $TESTSCRIPTDIR ] #the directory mozilla/security/nss/tests, + then # where all.sh lives + cd $TESTSCRIPTDIR + else + Exit "cant cd to $TESTSCRIPTDIR Exiting" + fi -Debug "HOST: $HOST, DOMSUF: $DOMSUF" + Debug testing from `pwd` + line -# From the operatingsystem figure out the name of the build + Debug "HOST: $HOST, DOMSUF: $DOMSUF" -case `uname -s` in - SunOS) - #first testing the 32 bit 2.6 build, even on 2.8 - MAPPED_OS=Solaris2.6 - ;; - OSF1) - MAPPED_OS=OSF1V4.0 - ;; - AIX) - MAPPED_OS=AIX4.3 - ;; - Linux) - MAPPED_OS=Linux2.2 - ;; - HP-UX) - MAPPED_OS=HPUX11.00 - ;; - *) - if [ "$os_name" = "Windows" ] - then - MAPPED_OS=NT4.0 - else - Exit "Sorry, operating system `uname -s` is not supported yet" - fi - ;; -esac - -OSDIR=${D1}/builds/${QAYEAR}${BUILDDATE}.${BUILDNUMBER}/*${MAPPED_OS}* -Debug Testing build for $MAPPED_OS in $OSDIR - -if [ $O_WIN = "ON" ] -then - WaitForever ${OSDIR}/SVbuild.InProgress.1 0 #Wait for the build to finish... - OS_TARGET=WINNT;export OS_TARGET;Debug "OS_TARGET set to $OS_TARGET" - Echo "WINDOWS-OS-LINE: $os_name $os_full $OS_TARGET" -else - Wait ${OSDIR}/SVbuild.InProgress.1 0 #Wait for the build to finish... -fi -find_nt_masterbuild -Debug "Dist $DIST" -run_all -BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT" -run_all -IS_64="" - -# now for the 64 bit build! - -case `uname -s` in - #OSF1) has been done already - always 64 bit - SunOS) - MAPPED_OS=Solaris*8 - IS_64=`(isainfo -v | grep 64)>/dev/null 2>/dev/null && echo 64 bit` - OSDIR=${D1}/builds/${QAYEAR}${BUILDDATE}.${BUILDNUMBER}/*${MAPPED_OS} - if [ -n "$IS_64" ] - then #Wait for the 64 bit build to finish... - Debug Testing build for $MAPPED_OS in $OSDIR - Wait ${OSDIR}/SVbuild.InProgress.1 0 - fi - ;; - AIX) - IS_64=`lslpp -l | grep "bos.64bit"> /dev/null && echo 64 bit` - ;; - HP-UX) - IS_64=`getconf KERNEL_BITS | grep 64 >/dev/null && echo 64 bit` - ;; - *) - if [ "$O_WIN" = "ON" ] - then - OS_TARGET=WIN95;export OS_TARGET;Debug "OS_TARGET set to $OS_TARGET" - Echo "WINDOWS-OS-LINE: $os_name $os_full $OS_TARGET" - unset BUILD_OPT;export BUILD_OPT;Debug "BUILD_OPT $BUILD_OPT" - run_all - BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT" - run_all - Debug "Copy results from $NT_MASTERDIR/mozilla/tests_results/security to $RESULTDIR" - cp -r $NT_MASTERDIR/mozilla/tests_results/security/* $RESULTDIR - fi - return - ;; -esac - -if [ -n "$IS_64" ] -then #Wait for the 64 bit build to finish... - Debug "This is a $IS_64 platform" - USE_64=1;export USE_64;Debug "Use_64 set to $USE_64" - unset BUILD_OPT;export BUILD_OPT;Debug "BUILD_OPT $BUILD_OPT" - - run_all - BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT" - run_all -else - Debug "This is a 32 bit platform" -fi + # From the operatingsystem figure out the name of the build + case `uname -s` in + SunOS) + #first testing the 32 bit 2.6 build, even on 2.8 + MAPPED_OS=Solaris2.6 + ;; + OSF1) + MAPPED_OS=OSF1V4.0 + ;; + AIX) + MAPPED_OS=AIX4.3 + ;; + Linux) + MAPPED_OS=Linux2.2 + ;; + HP-UX) + MAPPED_OS=HPUX11.00 + ;; + *) + if [ "$os_name" = "Windows" ] + then + MAPPED_OS=NT4.0 + else + Exit "Sorry, operating system `uname -s` is not supported yet" + fi + ;; + esac + + OSDIR=${D1}/builds/${QAYEAR}${BUILDDATE}.${BUILDNUMBER}/*${MAPPED_OS}* + Debug Testing build for $MAPPED_OS in $OSDIR + + if [ $O_WIN = "ON" ] + then + WaitForever ${OSDIR}/SVbuild.InProgress.1 0 + #Wait for the build to finish Windows a lot longer + OS_TARGET=WINNT;export OS_TARGET;Debug "OS_TARGET set to $OS_TARGET" + Echo "WINDOWS-OS-LINE: $os_name $os_full $OS_TARGET" + else + Wait ${OSDIR}/SVbuild.InProgress.1 0 + #Wait for the build to finish... Unix a few hours + fi + find_nt_masterbuild + Debug "Dist $DIST" + run_all + BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT" + run_all + IS_64="" + + # now for the 64 bit build! + + case `uname -s` in + #OSF1) has been done already - always 64 bit + SunOS) + MAPPED_OS=Solaris*8 + IS_64=`(isainfo -v | grep 64)>/dev/null 2>/dev/null && echo 64 bit` + OSDIR=${D1}/builds/${QAYEAR}${BUILDDATE}.${BUILDNUMBER}/*${MAPPED_OS} + if [ -n "$IS_64" ] + then #Wait for the 64 bit build to finish... + Debug Testing build for $MAPPED_OS in $OSDIR + Wait ${OSDIR}/SVbuild.InProgress.1 0 + fi + ;; + AIX) + IS_64=`lslpp -l | grep "bos.64bit"> /dev/null && echo 64 bit` + ;; + HP-UX) + IS_64=`getconf KERNEL_BITS | grep 64 >/dev/null && echo 64 bit` + ;; + *) + if [ "$O_WIN" = "ON" ] + then + OS_TARGET=WIN95;export OS_TARGET + Debug "OS_TARGET set to $OS_TARGET" + Echo "WINDOWS-OS-LINE: $os_name $os_full $OS_TARGET" + unset BUILD_OPT;export BUILD_OPT;Debug "BUILD_OPT $BUILD_OPT" + run_all + BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT" + run_all + Debug "Copy results from $NT_MASTERDIR/mozilla/tests_results/security to $RESULTDIR" + cp -r $NT_MASTERDIR/mozilla/tests_results/security/* $RESULTDIR + fi + return + ;; + esac + + if [ -n "$IS_64" ] + then #Wait for the 64 bit build to finish... + Debug "This is a $IS_64 platform" + USE_64=1;export USE_64;Debug "Use_64 set to $USE_64" + unset BUILD_OPT;export BUILD_OPT;Debug "BUILD_OPT $BUILD_OPT" + + run_all + BUILD_OPT=1; export BUILD_OPT; Debug "BUILD_OPT $BUILD_OPT" + run_all + else + Debug "This is a 32 bit platform" + fi + } - + if [ $O_FILE = ON ] then - nssqa_main 2>>$FILENAME + nssqa_main 2>>$FILENAME else - nssqa_main + nssqa_main fi Exit "Done." diff --git a/security/nss/tests/path_uniq b/security/nss/tests/path_uniq index 15429a7f5..170573ce3 100755 --- a/security/nss/tests/path_uniq +++ b/security/nss/tests/path_uniq @@ -9,11 +9,11 @@ # # parameters # ---------- -# PATH +# PATH # # options # ------- -# -d delimiter - default : +# -d delimiter - default : # # usefull enhancements: in the usage part, try to guess what was meant as # a path and echo it to stdout to not break for PATHs with blanks @@ -21,15 +21,15 @@ ######################################################################## sub usage { - print STDERR "usage $0 [-d <delimiter>] PATH\n"; - print STDERR " this script makes components of the PATH unique, if you\n"; - print STDERR " pass in a searchpath A:B:C:A:B:E it will print A:B:C:E to\n"; - print STDERR " the stdout\n"; - print STDERR " the parameters you gave were: "; - for ( $i = 0; $i <= $#ARGV; $i++ ) { - print STDERR " $ARGV[$i]\n"; - } - exit ; + print STDERR "usage $0 [-d <delimiter>] PATH\n"; + print STDERR " this script makes components of the PATH unique, if you\n"; + print STDERR " pass in a searchpath A:B:C:A:B:E it will print A:B:C:E to\n"; + print STDERR " the stdout\n"; + print STDERR " the parameters you gave were: "; + for ( $i = 0; $i <= $#ARGV; $i++ ) { + print STDERR " $ARGV[$i]\n"; + } + exit ; } @@ -43,38 +43,38 @@ $newpath=""; if ( $ARGV[0] eq '-d' ) { - if ( $#ARGV != 2 ) { - usage; - } - $delimiter = $ARGV[1]; - $searchpath = $ARGV[2]; + if ( $#ARGV != 2 ) { + usage; + } + $delimiter = $ARGV[1]; + $searchpath = $ARGV[2]; } else { - if ( $#ARGV != 0 ) { - usage; - } - $searchpath = $ARGV[0]; + if ( $#ARGV != 0 ) { + usage; + } + $searchpath = $ARGV[0]; } @pathcomponents=split($delimiter, $searchpath); for ( $i = 0; $i <= $#pathcomponents; $i++ ) { - $found=0; - for ( $j = 0; $j < $i; $j++ ) { - if ( $pathcomponents[$j] eq $pathcomponents[$i] ) { - #print "$i and $j match - $pathcomponents[$i] - $pathcomponents[$j]\n"; - $found=1; - last; - } - } - if ( $found == 0 ) { - #print "$pathcomponents[$i]:"; - if ($i == 0) { - $newpath = $pathcomponents[$i]; - } else { - $newpath=join($delimiter, $newpath,$pathcomponents[$i]); - } - } + $found=0; + for ( $j = 0; $j < $i; $j++ ) { + if ( $pathcomponents[$j] eq $pathcomponents[$i] ) { + #print "$i and $j match - $pathcomponents[$i] - $pathcomponents[$j]\n"; + $found=1; + last; + } + } + if ( $found == 0 ) { + #print "$pathcomponents[$i]:"; + if ($i == 0) { + $newpath = $pathcomponents[$i]; + } else { + $newpath=join($delimiter, $newpath,$pathcomponents[$i]); + } + } } print "$newpath\n"; exit; diff --git a/security/nss/tests/qa_stat b/security/nss/tests/qa_stat index 7805a6d42..d54390802 100755 --- a/security/nss/tests/qa_stat +++ b/security/nss/tests/qa_stat @@ -4,23 +4,23 @@ # /u/sonmi/bin/qa_stat - /u/svbld/bin/init/nss/qa_stat # # this script is supposed to automatically run QA for NSS on all required -# Unix platforms +# Unix platforms - warning - will not run on Windows # # parameters # ---------- -# nssversion (supported: 30b, 31, tip) -# builddate (default - today) +# nssversion (supported: 30b, 31, tip) +# builddate (default - today) # # options # ------- -# -y answer all questions with y - use at your own risk...ignores warnings -# -s silent (only usefull with -y) -# -h, -? - you guessed right - displays this text -# -d debug -# -f <filename> - write the (error)output to filename -# -m <mailinglist> - send filename to mailinglist (csl) only useful -# with -f -# -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.qa_stat +# -y answer all questions with y - use at your own risk...ignores warnings +# -s silent (only usefull with -y) +# -h, -? - you guessed right - displays this text +# -d debug +# -f <filename> - write the (error)output to filename +# -m <mailinglist> - send filename to mailinglist (csl) only useful +# with -f +# -cron equivalient to -y -s -d -f $RESULTDIR/$HOST.qa_stat # ######################################################################## @@ -33,12 +33,50 @@ EARLY_EXIT=TRUE DOCDIR=/u/sonmi/doc +# this file is used to deal with hanging rsh - a new shell is started +# for each rsh, and a function is called after it is finished - they +# communicate with this file +RSH_FILE=$TMP/rsh.$$ +echo >$RSH_FILE +TMPFILES="$TMPFILES $RSH_FILE" +RSH_WAIT_TIME=60 #maximum time allowed for the 2 rsh to finish... + Debug "NTDIST $NTDIST" Debug "UXDIST $UXDIST" Debug "TESTSCRIPTDIR $TESTSCRIPTDIR" Debug "RESULTDIR $RESULTDIR" -############################### find_qa_systems ########################## +############################### watch_rsh ############################## +# local shell function, deals with a hanging rsh (kills it...) +# this function is started as a backgroundprocess before the rsh is started, +# and writes info to the RSH_FILE, after the rsh is finished it writes finish +# info to the same file (this time called as a function, forground). +# the backgroundprocess stays around for RSH_WAIT_TIME, if then the finish +# information is not there attempts to kill the rsh +# +# watch_rsh start qa_computername & +# watch_rsh stop qa_computername +# +######################################################################## +watch_rsh() +{ + case $1 in + start) + echo "$2 started" >>$RSH_FILE + sleep $RSH_WAIT_TIME + O_ALWAYS_YES=ON # may modify global flags because this is a + # forked off bg process - kill_by_name otherwise + # will ask the user if it really should be killed + grep "$2 finished" $RSH_FILE >/dev/null || kill_by_name "rsh $2" + exit + ;; + stop) + echo "$2 finished" >>$RSH_FILE + ;; + esac +} + +############################### find_qa_systems ######################## # local shell function, tries to determine the QA operating system ######################################################################## find_qa_systems() @@ -53,107 +91,109 @@ find_qa_systems() for w in `ls $RESULTDIR | grep \.1$ | sed -e "s/\..*//" | sort -u` do - NO_RSH="FALSE" - QA_OS="" - QA_RHVER="" - IS_64="" - IS_WIN="" - - grep WINDOWS-OS-LINE ${RESULTDIR}/${w}.nssqa && NO_RSH=TRUE - - if [ $NO_RSH = "TRUE" ] - then - grep WINDOWS-OS-LINE ${RESULTDIR}/${w}.nssqa | sed -e "s/ /_/g" \ - -e "s/WINDOWS-OS-LINE:_Windows/${w}/g" >>$TMP_PLATFORMLIST_FILE - grep WINDOWS-OS-LINE ${RESULTDIR}/${w}.nssqa | sed -e "s/ /_/g" \ - -e "s/WINDOWS-OS-LINE:_Windows/${w}/g" - else - QA_SYS=`rsh $w uname -sr` - echo $QA_SYS | grep Linux && QA_RHVER=`rsh $w cat /etc/redhat-release` - if [ -n "$QA_RHVER" ] - then - QA_OS=`echo $w $QA_RHVER | sed -e "s/Red Hat /RH /" \ - -e "s/ release//"` - else - case $QA_SYS in - *SunOS*5.8*) - IS_64=`rsh $w isainfo -v | grep 64 >/dev/null && \ - echo 64 bit` - if [ -z "$IS_64" ] ; then IS_64="32 bit"; fi; - ;; - *HP*) - IS_64=`rsh $w getconf KERNEL_BITS | grep 64 >/dev/null && \ - echo 64 bit` - if [ -z "$IS_64" ] ; then IS_64="32 bit"; fi; - ;; - *AIX*) - IS_64=`rsh $w lslpp -l | grep "bos.64bit"> /dev/null && \ - echo 64 bit` - if [ -z "$IS_64" ] ; then IS_64="32 bit"; fi; - ;; - esac - QA_OS=`echo "$w $QA_SYS $IS_64"` - fi - echo $QA_OS - echo $QA_OS | sed -e "s/ /_/g" >>$TMP_PLATFORMLIST_FILE # use later for - # missing list - fi + NO_RSH="FALSE" + QA_OS="" + QA_RHVER="" + IS_64="" + IS_WIN="" + + grep WINDOWS-OS-LINE ${RESULTDIR}/${w}.nssqa && NO_RSH=TRUE + + if [ "$NO_RSH" = "TRUE" ] + then + grep WINDOWS-OS-LINE ${RESULTDIR}/${w}.nssqa | sed -e "s/ /_/g" \ + -e "s/WINDOWS-OS-LINE:_Windows/${w}/g" >>$TMP_PLATFORMLIST_FILE + grep WINDOWS-OS-LINE ${RESULTDIR}/${w}.nssqa | sed -e "s/ /_/g" \ + -e "s/WINDOWS-OS-LINE:_Windows/${w}/g" + else + watch_rsh start $w & + QA_SYS=`rsh $w uname -sr` + echo $QA_SYS | grep Linux && QA_RHVER=`rsh $w cat /etc/redhat-release` + if [ -n "$QA_RHVER" ] + then + QA_OS=`echo $w $QA_RHVER | sed -e "s/Red Hat /RH /" \ + -e "s/ release//"` + else + case $QA_SYS in + *SunOS*5.8*) + IS_64=`rsh $w isainfo -v | grep 64 >/dev/null && \ + echo 64 bit` + if [ -z "$IS_64" ] ; then IS_64="32 bit"; fi; + ;; + *HP*) + IS_64=`rsh $w getconf KERNEL_BITS | grep 64 >/dev/null && \ + echo 64 bit` + if [ -z "$IS_64" ] ; then IS_64="32 bit"; fi; + ;; + *AIX*) + IS_64=`rsh $w lslpp -l | grep "bos.64bit"> /dev/null && \ + echo 64 bit` + if [ -z "$IS_64" ] ; then IS_64="32 bit"; fi; + ;; + esac + watch_rsh stop $w + QA_OS=`echo "$w $QA_SYS $IS_64"` + fi + echo $QA_OS + echo $QA_OS | sed -e "s/ /_/g" >>$TMP_PLATFORMLIST_FILE # use later for + # missing list + fi done } ################################### set_files ########################## # local shell function, sets the name of the resultfile to: -# <filename> if option -f <filename> -# $RESULTDIR/result if write permission -# (mozilla/tests_results/security/result) -# $HOME/resultNSS${NSSVER}-${BUILDDATE} if no write permission in $RESULTDIR +# <filename> if option -f <filename> +# $RESULTDIR/result if write permission +# (mozilla/tests_results/security/result) +# $HOME/resultNSS${NSSVER}-${BUILDDATE} if no write permission in $RESULTDIR ######################################################################## set_files() { - if [ $O_FILE = ON -a $O_CRON = OFF ] # if -f was specified write there - then - RFILE=$FILENAME - else - RFILE=${RESULTDIR}/result - #RFILE=${RESULTDIR}/result.$$ - if [ ! -w $RESULTDIR ] - then - RFILE=$HOME/resultNSS${NSSVER}-${BUILDDATE} - Debug "Using alternate resultfile $RFILE" - elif [ $O_CRON = ON ] - then - find ${RESULTDIR} -exec chmod a+rw {} \; #FIXME - umask - #doesn't seem to work - this is a tmp workaround - fi - - if [ ! -x $RESULTDIR -o ! -r $RESULTDIR -o ! -w $RESULTDIR ] - then - glob_usage "$RESULTDIR does not have the right permissions `ls -l $RESULTDIR`" - fi - if [ -d $RESULTDIR ] - then - cd $RESULTDIR - else - glob_usage "$RESULTDIR does not exist" - fi - fi - TMP_E_FILE=${RFILE}.E$$ - TMP_P_FILE=${RFILE}.P$$ - TMP_PLATFORMLIST_FILE=${RFILE}.platform.$$ - rm $TMP_PLATFORMLIST_FILE 2>/dev/null - TMP_PERF_FILE=${RFILE}.perf.$$ - HTML_FILE=${RFILE}.html - TMPFILES="$TMPFILES $TMP_E_FILE $TMP_P_FILE" + if [ $O_FILE = ON -a $O_CRON = OFF ] # if -f was specified write there + then + RFILE=$FILENAME + else + RFILE=${RESULTDIR}/result + #RFILE=${RESULTDIR}/result.$$ + if [ ! -w $RESULTDIR ] + then + RFILE=$HOME/resultNSS${NSSVER}-${BUILDDATE} + Debug "Using alternate resultfile $RFILE" + elif [ $O_CRON = ON ] + then + find ${RESULTDIR} -exec chmod a+rw {} \; #FIXME - umask + #doesn't seem to work - this is a tmp workaround + fi + + if [ ! -x $RESULTDIR -o ! -r $RESULTDIR -o ! -w $RESULTDIR ] + then + glob_usage "$RESULTDIR does not have the right permissions `ls -l $RESULTDIR`" + fi + if [ -d $RESULTDIR ] + then + cd $RESULTDIR + else + glob_usage "$RESULTDIR does not exist" + fi + fi + TMP_E_FILE=${RFILE}.E$$ + TMP_P_FILE=${RFILE}.P$$ + TMP_PLATFORMLIST_FILE=${RFILE}.platform.$$ + rm $TMP_PLATFORMLIST_FILE 2>/dev/null + TMP_PERF_FILE=${RFILE}.perf.$$ + HTML_FILE=${RFILE}.html + TMPFILES="$TMPFILES $TMP_E_FILE $TMP_P_FILE" #FIXME rm the rest too - add them to the TMPFILES - FILENAME=$RFILE #we might want to mail it...later switch to html file - O_FILE="ON" - rm $HTML_FILE $RFILE $TMP_E_FILE $TMP_P_FILE 2>/dev/null - cp $DOCDIR/QAheader.html $HTML_FILE + FILENAME=$RFILE #we might want to mail it...later switch to html file + O_FILE="ON" + rm $HTML_FILE $RFILE $TMP_E_FILE $TMP_P_FILE 2>/dev/null + cp $DOCDIR/QAheader.html $HTML_FILE } ################################# html_eot ######################### # local shell function, writes end of the html table -######################################################################## +#################################################################### html_eot() { echo '</table>' @@ -161,7 +201,7 @@ echo '</table>' ################################# html_footer ######################### # local shell function, writes end of the html body -######################################################################## +####################################################################### html_footer() { @@ -175,41 +215,41 @@ echo '</html>' ######################################################################## setQAsysvars() { - if [ "$MACHINE" != "0" ] - then - TESTDATE=`ls -ld $MACHINE | awk '{ print $5, $6, $7 }'` - TESTNUMBER=`echo $MACHINE | sed -e 's/.*\.//'` - SYSNAME=`echo $MACHINE | sed -e 's/\..*//'` - Debug "SYSNAME= $SYSNAME" - QA_SYS_OS=`grep $SYSNAME $TMP_PLATFORMLIST_FILE |sed -e 's/
//' | \ - sort | uniq | sed -e "s/$SYSNAME//" \ - -e "s/WINNT_WIN95/Windows NT/" \ - -e "s/WINNT_WINNT/Windows NT/" \ - -e "s/Windows_NT_WIN95/Windows NT/" \ - -e "s/Windows_NT_WINNT/Windows NT/" | sort | uniq` - Debug "QA_SYS_OS= $QA_SYS_OS" - fi - BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' -e 's/_DBG/ Debug/' \ - -e 's/_OPT/ Optimized/' -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \ - -e 's/_/ /'` - Debug "BUILD_SYS=$BUILD_SYS" - if [ -f "${RESULTDIR}/${MACHINE}/results.html" ] - then - RESULT="http://cindercone${RESULTDIR}/${MACHINE}/results.html" - Debug "RESULT=$RESULT" - else + if [ "$MACHINE" != "0" ] + then + TESTDATE=`ls -ld $MACHINE | awk '{ print $5, $6, $7 }'` + TESTNUMBER=`echo $MACHINE | sed -e 's/.*\.//'` + SYSNAME=`echo $MACHINE | sed -e 's/\..*//'` + Debug "SYSNAME= $SYSNAME" + QA_SYS_OS=`grep $SYSNAME $TMP_PLATFORMLIST_FILE |sed -e 's/
//' | \ + sort | uniq | sed -e "s/$SYSNAME//" \ + -e "s/WINNT_WIN95/Windows NT/" \ + -e "s/WINNT_WINNT/Windows NT/" \ + -e "s/Windows_NT_WIN95/Windows NT/" \ + -e "s/Windows_NT_WINNT/Windows NT/" | sort | uniq` + Debug "QA_SYS_OS= $QA_SYS_OS" + fi + BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' -e 's/_DBG/ Debug/' \ + -e 's/_OPT/ Optimized/' -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \ + -e 's/_/ /'` + Debug "BUILD_SYS=$BUILD_SYS" + if [ -f "${RESULTDIR}/${MACHINE}/results.html" ] + then + RESULT="http://cindercone${RESULTDIR}/${MACHINE}/results.html" + Debug "RESULT=$RESULT" + else RESULT="0" Debug "no resultfile" - fi - - if [ -f "${RESULTDIR}/${MACHINE}/output.log" ] - then - LOG="http://cindercone${RESULTDIR}/${MACHINE}/output.log" - Debug "LOG=$LOG" - else - LOG="0" - Debug "no logfile" - fi + fi + + if [ -f "${RESULTDIR}/${MACHINE}/output.log" ] + then + LOG="http://cindercone${RESULTDIR}/${MACHINE}/output.log" + Debug "LOG=$LOG" + else + LOG="0" + Debug "no logfile" + fi } HTML_ERRORCOLOR=\"#FF0000\" @@ -225,47 +265,46 @@ HTML_PASSEDMSG=Passed ######################################################################## html_line() { -echo '<tr NOSAVE>' -echo '<td NOSAVE>'$BUILD_SYS'</td>' -echo '' -echo '<td NOSAVE>'$QA_SYS_OS'</td>' -echo '' -echo '<td>'$SYSNAME'</td>' -#echo '<td>'$SYSNAME $TESTNUMBER $TESTDATE'</td>' -echo '' -if [ "$1" = "failed" ] -then - echo '<td BGCOLOR='$HTML_ERRORCOLOR' NOSAVE><b>'$HTML_ERRORMSG'</b></td>' -elif [ "$1" = "passed" ] -then - echo '<td BGCOLOR='$HTML_PASSEDCOLOR' NOSAVE>'$HTML_PASSEDMSG'</td>' -else - echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' -fi - -if [ "$RESULT" = "0" ] -then - echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' -else - echo '<td> <a href="'$RESULT'">result</a> </td>' -fi -echo '' -if [ "$LOG" = "0" ] -then - echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' -else - echo '<td> <a href="'$LOG'">log</a> </td>' -fi -echo '' -if [ "$1" = "failed" ] -then - echo '<td> <a href="#errorlist">error</a> </td>' -else - echo '<td></td>' -fi -echo '<td>'$TESTDATE $TESTNUMBER'</td>' -echo '</tr>' - + echo '<tr NOSAVE>' + echo '<td NOSAVE>'$BUILD_SYS'</td>' + echo '' + echo '<td NOSAVE>'$QA_SYS_OS'</td>' + echo '' + echo '<td>'$SYSNAME'</td>' + #echo '<td>'$SYSNAME $TESTNUMBER $TESTDATE'</td>' + echo '' + if [ "$1" = "failed" ] + then + echo '<td BGCOLOR='$HTML_ERRORCOLOR' NOSAVE><b>'$HTML_ERRORMSG'</b></td>' + elif [ "$1" = "passed" ] + then + echo '<td BGCOLOR='$HTML_PASSEDCOLOR' NOSAVE>'$HTML_PASSEDMSG'</td>' + else + echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' + fi + + if [ "$RESULT" = "0" ] + then + echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' + else + echo '<td> <a href="'$RESULT'">result</a> </td>' + fi + echo '' + if [ "$LOG" = "0" ] + then + echo '<td BGCOLOR='$HTML_MISSINGCOLOR' NOSAVE>'$HTML_MISSINGMSG'</td>' + else + echo '<td> <a href="'$LOG'">log</a> </td>' + fi + echo '' + if [ "$1" = "failed" ] + then + echo '<td> <a href="#errorlist">error</a> </td>' + else + echo '<td></td>' + fi + echo '<td>'$TESTDATE $TESTNUMBER'</td>' + echo '</tr>' } ################################# qa_errorlist ######################### @@ -273,65 +312,65 @@ echo '</tr>' ######################################################################## qa_errorlist() { - if [ "$1" = "1" ] - then - echo " R e s u l t E r r o r l i s t" - lline - fi - - #FIXME it should also examine the files for passed messages, since - #sometimes empty results and output.log files are generated - grep red */results.html | - sed -e 's/.results.html:<TR><TD>/ /' -e 's/<[^>]*>/ /g' - if [ "$1" = "1" ] - then - lline - echo " O u t p u t E r r o r / W a r n i n g l i s t" - lline - fi - - grep 'cache hits; .* cache misses, .* cache not reusable' */output.log | - grep -v selfserv | - grep -v '0 cache hits; 1 cache misses, 0 cache not reusable' | - grep -v '0 cache hits; 0 cache misses, 0 cache not reusable' | - grep -v ' cache hits; 1 cache misses, 0 cache not reusable' - #grep -v '999 cache hits; 1 cache misses, 0 cache not reusable' - - if [ "$1" = "1" ] - then - lline - echo " C o r e l i s t " - lline - fi - - find . -name core -print 2>/dev/null + if [ "$1" = "1" ] + then + echo " R e s u l t E r r o r l i s t" + lline + fi + + #FIXME it should also examine the files for passed messages, since + #sometimes empty results and output.log files are generated + grep red */results.html | + sed -e 's/.results.html:<TR><TD>/ /' -e 's/<[^>]*>/ /g' + if [ "$1" = "1" ] + then + lline + echo " O u t p u t E r r o r / W a r n i n g l i s t" + lline + fi + + grep 'cache hits; .* cache misses, .* cache not reusable' */output.log | + grep -v selfserv | + grep -v '0 cache hits; 1 cache misses, 0 cache not reusable' | + grep -v '0 cache hits; 0 cache misses, 0 cache not reusable' | + grep -v ' cache hits; 1 cache misses, 0 cache not reusable' + #grep -v '999 cache hits; 1 cache misses, 0 cache not reusable' + + if [ "$1" = "1" ] + then + lline + echo " C o r e l i s t " + lline + fi + + find . -name core -print 2>/dev/null } platformlist() { - lline - echo " P l a t f o r m l i s t " - - grep Platform */results.html | - sed -e 's/.results.html:<H4>Platform:/ /' \ - -e 's/<BR>//' | - while read MACHINE BUILDPLATFORM - do - grep $MACHINE $1 >/dev/null - ret=$? - setQAsysvars - if [ $ret -eq 0 ] - then - echo "Failed $MACHINE $BUILDPLATFORM" - html_line failed >>$HTML_FILE - #echo "1 $MACHINE $BUILDPLATFORM Failed 2" - else - echo "Passed $MACHINE $BUILDPLATFORM" - html_line passed >>$HTML_FILE - #echo "1 $MACHINE $BUILDPLATFORM passed 2" - fi - done + lline + echo " P l a t f o r m l i s t " + + grep Platform */results.html | + sed -e 's/.results.html:<H4>Platform:/ /' \ + -e 's/<BR>//' | + while read MACHINE BUILDPLATFORM + do + grep $MACHINE $1 >/dev/null + ret=$? + setQAsysvars + if [ $ret -eq 0 ] + then + echo "Failed $MACHINE $BUILDPLATFORM" + html_line failed >>$HTML_FILE + #echo "1 $MACHINE $BUILDPLATFORM Failed 2" + else + echo "Passed $MACHINE $BUILDPLATFORM" + html_line passed >>$HTML_FILE + #echo "1 $MACHINE $BUILDPLATFORM passed 2" + fi + done } @@ -340,89 +379,89 @@ platformlist() ######################################################################## check_platforms() { - #lline - #echo " M i s s i n g P l a t f o r m s" - #lline - QA_MISSING="QA report missing" - MACHINE="0" - - for BUILDPLATFORM in `cat $TESTSCRIPTDIR/platformlist` - do - grep $BUILDPLATFORM $TMP_PLATFORMLIST_FILE > /dev/null || { - echo "$BUILDPLATFORM not tested: $QA_MISSING" >>$TMP_P_FILE - setQAsysvars - html_line missing >>$HTML_FILE - - - } - done + #lline + #echo " M i s s i n g P l a t f o r m s" + #lline + QA_MISSING="QA report missing" + MACHINE="0" + + for BUILDPLATFORM in `cat $TESTSCRIPTDIR/platformlist` + do + grep $BUILDPLATFORM $TMP_PLATFORMLIST_FILE > /dev/null || { + echo "$BUILDPLATFORM not tested: $QA_MISSING" >>$TMP_P_FILE + setQAsysvars + html_line missing >>$HTML_FILE + + + } + done } lline() { - echo - echo "------------------------------------------------------------------" - echo + echo + echo "------------------------------------------------------------------" + echo } header() { - lline - echo "QA results for NSS $NSSVER builddate $QAYEAR $BUILDDATE " - echo "today's date `date`" - lline - echo "testing in $RESULTDIR" + lline + echo "QA results for NSS $NSSVER builddate $QAYEAR $BUILDDATE " + echo "today's date `date`" + lline + echo "testing in $RESULTDIR" } rsaperf() { - grep RSAPERF */output.log | grep -v "_DBG" > $TMP_PERF_FILE - + grep RSAPERF */output.log | grep -v "_DBG" > $TMP_PERF_FILE + + echo ' ' + echo '<br> ' + echo '<center>' + echo '<h1>' + echo '<a NAME="Performance list"></a>Performance list</h1></center>' echo ' ' - echo '<br> ' - echo '<center>' - echo '<h1>' - echo '<a NAME="Performance list"></a>Performance list</h1></center>' - echo ' ' - echo '<table BORDER WIDTH="100%" NOSAVE >' - echo '<tr NOSAVE>' - echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' - echo '' - echo '<td><b><font size=+1>Systemname</font></b></td>' - echo '' - echo '<td><b><font size=+1># of iterations</font></b></td>' - echo '' - echo '<td><b><font size=+1>average for one op</font></b></td>' - echo '' - echo '<td><b><font size=+1>Total</font></b></td>' - echo '' - echo '<td><b><font size=+1>QA time / #</font></b></td>' - echo '</tr>' - cat $TMP_PERF_FILE | while read MACHINE BUILDPLATFORM no_iter t1 t2 total total_unit t3 t4 t5 average average_unit - do - BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' \ - -e 's/_DBG/ Debug/' \ - -e 's/_OPT/ Optimized/' -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \ - -e 's/_/ /'` - TESTNUMBER=`echo $MACHINE | sed -e 's/[^\.]*\.//' -e 's/\/.*//'` - MACHINE=`echo $MACHINE | sed -e 's/\..*//'` - TESTDATE=`ls -ld ${MACHINE}.${TESTNUMBER} | awk '{ print $5, $6, $7 }'` - echo '<tr>' - echo '<td>'$BUILD_SYS'</td>' - echo '' - echo '<td>'$MACHINE'</td>' - echo '' - echo '<td>'$no_iter'</td>' - echo '' - echo '<td>'$average' '$average_unit'</td>' - echo '' - echo '<td>'$total' '$total_unit'</td>' - echo '' - echo '<td>'$TESTDATE $TESTNUMBER'</td>' - echo '' - echo '</tr>' - done - echo '</table>' + echo '<table BORDER WIDTH="100%" NOSAVE >' + echo '<tr NOSAVE>' + echo '<td NOSAVE><b><font size=+1>Build-OS and version</font></b></td>' + echo '' + echo '<td><b><font size=+1>Systemname</font></b></td>' + echo '' + echo '<td><b><font size=+1># of iterations</font></b></td>' + echo '' + echo '<td><b><font size=+1>average for one op</font></b></td>' + echo '' + echo '<td><b><font size=+1>Total</font></b></td>' + echo '' + echo '<td><b><font size=+1>QA time / #</font></b></td>' + echo '</tr>' + cat $TMP_PERF_FILE | while read MACHINE BUILDPLATFORM no_iter t1 t2 total total_unit t3 t4 t5 average average_unit + do + BUILD_SYS=`echo $BUILDPLATFORM | sed -e 's/\.OBJ//' \ + -e 's/_DBG/ Debug/' \ + -e 's/_OPT/ Optimized/' -e 's/_64/ 64bit/' -e 's/_glibc_PTH//' \ + -e 's/_/ /'` + TESTNUMBER=`echo $MACHINE | sed -e 's/[^\.]*\.//' -e 's/\/.*//'` + MACHINE=`echo $MACHINE | sed -e 's/\..*//'` + TESTDATE=`ls -ld ${MACHINE}.${TESTNUMBER} | awk '{ print $5, $6, $7 }'` + echo '<tr>' + echo '<td>'$BUILD_SYS'</td>' + echo '' + echo '<td>'$MACHINE'</td>' + echo '' + echo '<td>'$no_iter'</td>' + echo '' + echo '<td>'$average' '$average_unit'</td>' + echo '' + echo '<td>'$total' '$total_unit'</td>' + echo '' + echo '<td>'$TESTDATE $TESTNUMBER'</td>' + echo '' + echo '</tr>' + done + echo '</table>' } set_files @@ -455,5 +494,5 @@ qa_errorlist 2 | sed -e "s/^/<br>/" >>$HTML_FILE html_footer >>$HTML_FILE EARLY_EXIT=FALSE -FILENAME=$HTML_FILE #we might want to mail it... +FILENAME=$HTML_FILE #we might want to mail it... Exit diff --git a/security/nss/tests/qaclean b/security/nss/tests/qaclean index 90b513236..b05ae4ad6 100755 --- a/security/nss/tests/qaclean +++ b/security/nss/tests/qaclean @@ -7,9 +7,9 @@ # is supposed to clean up after a "hanging" QA # # 1) see if there is a lockfile -# if yes: -# 1a) kill the process of the lockfile and if possible it's children -# 1b) rm the lockfile +# if yes: +# 1a) kill the process of the lockfile and if possible it's children +# 1b) rm the lockfile # 2) kill selfservers # 3) clean up old tmp files # @@ -46,11 +46,11 @@ Ps() Kill() { - if [ "$1" = "$$" ] - then - return - fi - echo "Killing PID $1" + if [ "$1" = "$$" ] + then + return + fi + echo "Killing PID $1" kill $1 sleep 1 kill -9 $1 2>/dev/null @@ -62,12 +62,12 @@ Kill() ######################################################################## kill_by_name() { - echo "Killing all $1" + echo "Killing all $1" for PID in `Ps | grep "$1" | grep -v grep | \ - sed -e "s/^[ ]*//g" -e "s/[ ].*//"` + sed -e "s/^[ ]*//g" -e "s/[ ].*//"` do - Kill $PID + Kill $PID done } @@ -76,14 +76,14 @@ kill_the_rest() i=0 while [ $i -lt $1 ] do - kill_by_name nssqa - kill_by_name selfserv - kill_by_name strsclnt - kill_by_name all.sh - kill_by_name sdr.sh - kill_by_name ssl.sh - kill_by_name smime.sh - i=`expr $i + 1` + kill_by_name nssqa + kill_by_name selfserv + kill_by_name strsclnt + kill_by_name all.sh + kill_by_name sdr.sh + kill_by_name ssl.sh + kill_by_name smime.sh + i=`expr $i + 1` done } @@ -91,26 +91,26 @@ nt_warning() { os_name=`uname -s` case $os_name in - CYGWIN*|WIN*|Win*) - echo - echo - echo - echo "Another Windows problem... If you have not already done so" - echo "after this script completes, please reboot, and log in as" - echo "user svbld again" - echo - echo - echo - ;; + CYGWIN*|WIN*|Win*) + echo + echo + echo + echo "Another Windows problem... If you have not already done so" + echo "after this script completes, please reboot, and log in as" + echo "user svbld again" + echo + echo + echo + ;; esac } nt_warning case $1 in - ?*) - rsh $1 '/u/sonmi/bin/qaclean' - exit - ;; + ?*) + rsh $1 '/u/sonmi/bin/qaclean' + exit + ;; esac uname -a @@ -118,14 +118,15 @@ echo if [ -f ${TMP}/nssqa.* ] then - echo "nssqa seems to be running ${TMP}/nssqa.*" - #cat ${TMP}/nssqa.* - NSSQA_PID=`ls ${TMP}/nssqa.* | sed -e 's/[^.]*\.//'` - Kill $NSSQA_PID - rm ${TMP}/nssqa.* + echo "nssqa seems to be running ${TMP}/nssqa.*" + #cat ${TMP}/nssqa.* + NSSQA_PID=`ls ${TMP}/nssqa.* | sed -e 's/[^.]*\.//'` + Kill $NSSQA_PID + rm ${TMP}/nssqa.* fi kill_the_rest 3 +ls -l ${TMP}/nsstmp.* rm ${TMP}/nsstmp.* 2>/dev/null rm ${TMP}/certutilout.* 2>/dev/null nt_warning diff --git a/security/nss/tests/set_environment b/security/nss/tests/set_environment index 7f08a4a2c..13dedabc4 100644 --- a/security/nss/tests/set_environment +++ b/security/nss/tests/set_environment @@ -5,7 +5,7 @@ # /u/sonmi/bin/set_environment # # sourced from the header if running from cron to get the full environment -# to run nssqa - also used to unify all nssqa environments +# to run nssqa - also used to unify all nssqa environments # # This is derived from the .cshrc file for the svbld account. # @@ -13,7 +13,7 @@ if [ -z "$HOME" ] then - HOME=/u/svbld + HOME=/u/svbld fi if [ -z "$QASCRIPT_DIR" ] then @@ -22,6 +22,7 @@ fi #FIXME - where do we need the OLDPATH + OLDPATH="$PATH" PATH=.:$HOME/bin:/tools/ns/bin:/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/dist/local/exe:/usr/bin/X11:/usr/audio/bin:/u/sonmi/bin:$PATH @@ -33,7 +34,7 @@ os_full="" if [ -f /u/svbld/bin/nsarch ] then - os_full=`/u/svbld/bin/nsarch -f` #FIXME + os_full=`/u/svbld/bin/nsarch -f` #FIXME fi MANPATH=/usr/share/man:/usr/openwin/man:/usr/local/man @@ -43,64 +44,64 @@ export CVSROOT HOME os_name os_version os_full MANPATH if [ $os_name = "HP-UX" ] then - PATH=$PATH:/usr/local/bin:/opt/aCC/bin:/usr/local/bin/audio:/tools/ns/bin:/etc:/usr/contrib/bin:/usr/contrib/bin/X11:/usr/local/hpux/bin:/nfs/iapp1/hphome/bin:/etc + PATH=$PATH:/usr/local/bin:/opt/aCC/bin:/usr/local/bin/audio:/tools/ns/bin:/etc:/usr/contrib/bin:/usr/contrib/bin/X11:/usr/local/hpux/bin:/nfs/iapp1/hphome/bin:/etc elif [ $os_name = "SunOS" ] then - XAPPLRESDIR=/usr/openwin/lib/app-defaults:/usr/local/lib/X11/app-defaults - OPENWINHOME=/usr/openwin - LD_LIBRARY_PATH=$OPENWINHOME/lib - PATH=/tools/ns/bin:$PATH:/opt/SUNWspro/bin:/usr/bin/X11:/usr/openwin/bin:/usr/openwin/demo - if [ $os_version = "5.8" -o $os_version = "5.7" ] - then - PATH=$PATH:/tools/ns/workshop-5.0/bin - else - PATH=$PATH:/tools/ns/workshop-4.0/bin - fi - PATH=$PATH:/usr/ccs/bin:/usr/ucb/bin:/opt/SUNWwabi/bin:/usr/local/bin:/tools/ns/bin:/etc:/tools/contrib/bin - PATH=/usr/ucb:/h/tortoise/export/share/builds/tools/sparc_sun_solaris2.5.1/perl5.004/bin:$PATH - export XAPPLRESDIR OPENWINHOME LD_LIBRARY_PATH + XAPPLRESDIR=/usr/openwin/lib/app-defaults:/usr/local/lib/X11/app-defaults + OPENWINHOME=/usr/openwin + LD_LIBRARY_PATH=$OPENWINHOME/lib + PATH=/tools/ns/bin:$PATH:/opt/SUNWspro/bin:/usr/bin/X11:/usr/openwin/bin:/usr/openwin/demo + if [ $os_version = "5.8" -o $os_version = "5.7" ] + then + PATH=$PATH:/tools/ns/workshop-5.0/bin + else + PATH=$PATH:/tools/ns/workshop-4.0/bin + fi + PATH=$PATH:/usr/ccs/bin:/usr/ucb/bin:/opt/SUNWwabi/bin:/usr/local/bin:/tools/ns/bin:/etc:/tools/contrib/bin + PATH=/usr/ucb:/h/tortoise/export/share/builds/tools/sparc_sun_solaris2.5.1/perl5.004/bin:$PATH + export XAPPLRESDIR OPENWINHOME LD_LIBRARY_PATH elif [ $os_name = "IRIX" ] then - PATH=$PATH:/tools/ns/bin:/usr/local/bin:/etc:/usr/bsd - MANPATH=/tools/ns/man:/usr/local/man + PATH=$PATH:/tools/ns/bin:/usr/local/bin:/etc:/usr/bsd + MANPATH=/tools/ns/man:/usr/local/man elif [ $os_name = "IRIX64" ] then - PATH=$PATH:/tools/ns/bin:/usr/local/bin:/etc:/usr/bsd - MANPATH=/tools/ns/man:/usr/local/man + PATH=$PATH:/tools/ns/bin:/usr/local/bin:/etc:/usr/bsd + MANPATH=/tools/ns/man:/usr/local/man elif [ $os_name = "Linux" ] then - PATH=/lib:/usr/lib:/bin:/sbin:/usr/bin:/usr/sbin:$PATH + PATH=/lib:/usr/lib:/bin:/sbin:/usr/bin:/usr/sbin:$PATH elif [ $os_name = "AIX" ] then - PATH=$PATH:/tools/contrib/bin:/usr/local/bin - TERM=vt100 - export TERM + PATH=$PATH:/tools/contrib/bin:/usr/local/bin + TERM=vt100 + export TERM elif [ $os_name = "OSF1" ] then - PATH=/h/tortoise/export/share/builds/tools/alpha_dec_osf4.0/perl5.004/bin:$PATH:/usr/local/bin + PATH=/h/tortoise/export/share/builds/tools/alpha_dec_osf4.0/perl5.004/bin:$PATH:/usr/local/bin fi if [ "$os_full" = "HPUX 11.00" ] then - PATH=/h/tortoise/export/share/builds/tools/hppa1.1_hp_hpux11.00/perl5.004/bin:$PATH + PATH=/h/tortoise/export/share/builds/tools/hppa1.1_hp_hpux11.00/perl5.004/bin:$PATH elif [ "$os_full" = "HPUX 10.10" ] then - PATH=/h/tortoise/export/share/builds/tools/hppa1.1_hp_hpux10.10/perl5.004/bin:$PATH + PATH=/h/tortoise/export/share/builds/tools/hppa1.1_hp_hpux10.10/perl5.004/bin:$PATH elif [ "$os_full" = "AIX 4.1.4.0" ] then - PATH=/h/tortoise/export/share/builds/tools/rs6000_ibm_aix3.2.5/perl5.004/bin:$PATH + PATH=/h/tortoise/export/share/builds/tools/rs6000_ibm_aix3.2.5/perl5.004/bin:$PATH elif [ "$os_full" = "AIX 4.1.5.0" ] then - PATH=/h/tortoise/export/share/builds/tools/rs6000_ibm_aix3.2.5/perl5.004/bin:$PATH + PATH=/h/tortoise/export/share/builds/tools/rs6000_ibm_aix3.2.5/perl5.004/bin:$PATH elif [ "$os_full" = "AIX 4.2.1.0" ] then - PATH=/h/tortoise/export/share/builds/tools/rs6000_ibm_aix4.1/perl5.004/bin:$PATH + PATH=/h/tortoise/export/share/builds/tools/rs6000_ibm_aix4.1/perl5.004/bin:$PATH elif [ "$os_name" = "IRIX" ] then - PATH=/tools/ns-arch/soft/perl-5.004_04/run/default/mips_sgi_irix5.3/bin:$PATH + PATH=/tools/ns-arch/soft/perl-5.004_04/run/default/mips_sgi_irix5.3/bin:$PATH elif [ "$os_name" = "IRIX64" ] then - PATH=/tools/ns-arch/soft/perl-5.004_04/run/default/mips_sgi_irix5.3/bin:$PATH + PATH=/tools/ns-arch/soft/perl-5.004_04/run/default/mips_sgi_irix5.3/bin:$PATH fi O_CYGNUS=OFF @@ -108,62 +109,62 @@ O_MKS=OFF O_WIN=OFF if [ "$os_name" = "CYGWIN_NT-4.0" -o \ - "$os_name" = "CYGWIN_NT-5.0" -o \ - "$os_name" = "CYGWIN_95-4.0" -o \ - "$os_name" = "CYGWIN_98-4.10" ] -then - #FIXME net use, mount the neccessary pnetwork drives and partitiones first - #FIXME - take MKS out of the PATH - os_full=$os_name - os_name="Windows" - O_CYGNUS=ON - O_WIN=ON - OLDPATH=`echo "$OLDPATH" | sed -e 's/\\\/\//g'` - PATH="`dirname $0`:.:/cygdrive/c/cygwin/bin:/cygdrive/z/nstools/bin:/cygdrive/z/nstools/perl5:/cygdrive/z/bin:/cygdrive/c/WINNT/System32:/cygdrive/c/WINNT" + "$os_name" = "CYGWIN_NT-5.0" -o \ + "$os_name" = "CYGWIN_95-4.0" -o \ + "$os_name" = "CYGWIN_98-4.10" ] +then + #FIXME net use, mount the neccessary pnetwork drives and partitiones first + #FIXME - take MKS out of the PATH + os_full=$os_name + os_name="Windows" + O_CYGNUS=ON + O_WIN=ON + OLDPATH=`echo "$OLDPATH" | sed -e 's/\\\/\//g'` + PATH="`dirname $0`:.:/cygdrive/c/cygwin/bin:/cygdrive/z/nstools/bin:/cygdrive/z/nstools/perl5:/cygdrive/z/bin:/cygdrive/c/WINNT/System32:/cygdrive/c/WINNT" #:$OLDPATH: - RM=/cygdrive/c/cygwin/bin/rm.exe #FIXME - in case we cant cporrect - #these with the PATH alone - PATH=`perl $QASCRIPT_DIR/path_uniq "$PATH"` + RM=/cygdrive/c/cygwin/bin/rm.exe #FIXME - in case we cant cporrect + #these with the PATH alone + PATH=`perl $QASCRIPT_DIR/path_uniq "$PATH"` elif [ "$os_name" = "Windows_95" -o \ - "$os_name" = "Windows_NT" -o \ - "$os_name" = "WINNT" -o \ - "$os_name" = "Windows_98" ] -then - #FIXME net use, mount the neccessary pnetwork drives and partitiones first - #OLDPATH=`echo "$OLDPATH" | sed -e 's/\\\/\//g'` FIXME - MKS shell - # interprets \bin as <backspace>in... - PATH=`echo $SHELL | sed -e "s/.ksh.exe//g" -e "s/.sh.exe//g"` - PATH="Z:/nstools/bin;Z:/nstools/perl5;z:/bin;$PATH" - - if [ "$os_name" = "Windows_NT" -o \ - "$os_name" = "WINNT" ] - then - PATH="${PATH};C:/WINNT/System32;C:/WINNT;.;" - fi - PATH="`dirname $0`;$PATH" - - PATH=`perl $QASCRIPT_DIR/path_uniq -d ';' "$PATH"` - echo $PATH - os_full=$os_name - os_name="Windows" - O_MKS=ON - O_WIN=ON - + "$os_name" = "Windows_NT" -o \ + "$os_name" = "WINNT" -o \ + "$os_name" = "Windows_98" ] +then + #FIXME net use, mount the neccessary pnetwork drives and partitiones first + #OLDPATH=`echo "$OLDPATH" | sed -e 's/\\\/\//g'` FIXME - MKS shell + # interprets \bin as <backspace>in... + PATH=`echo $SHELL | sed -e "s/.ksh.exe//g" -e "s/.sh.exe//g"` + PATH="Z:/nstools/bin;Z:/nstools/perl5;z:/bin;$PATH" + + if [ "$os_name" = "Windows_NT" -o \ + "$os_name" = "WINNT" ] + then + PATH="${PATH};C:/WINNT/System32;C:/WINNT;.;" + fi + PATH="`dirname $0`;$PATH" + + PATH=`perl $QASCRIPT_DIR/path_uniq -d ';' "$PATH"` + echo $PATH + os_full=$os_name + os_name="Windows" + O_MKS=ON + O_WIN=ON + else - EDITOR=vi - EMACSLOADPATH=/u/svbld/emacs - PYTHONPATH=.:/tools/ns/lib/python1.4 - PAGER=less - XMCD_LIBDIR=/usr/local/lib/xmcd - DISPLAY=:0.0 - PATH=`perl $QASCRIPT_DIR/path_uniq "$PATH"` + EDITOR=vi + EMACSLOADPATH=/u/svbld/emacs + PYTHONPATH=.:/tools/ns/lib/python1.4 + PAGER=less + XMCD_LIBDIR=/usr/local/lib/xmcd + DISPLAY=:0.0 + PATH=`perl $QASCRIPT_DIR/path_uniq "$PATH"` fi -BASEPATH=$PATH # in case we we set and reset DIST directories the PATH - # needs to change accordingly +BASEPATH=$PATH # in case we we set and reset DIST directories the PATH + # needs to change accordingly export PATH EDITOR EMACSLOADPATH PYTHONPATH PAGER XMCD_LIBDIR DISPLAY MANPATH os_full os_name BASEPATH umask 022 -system=`uname -n` # name of this system. +system=`uname -n` # name of this system. |