Compare commits

..

2 Commits

Author SHA1 Message Date
sdv%sparc.spb.su
53866ece4f workaround for bug=30927
git-svn-id: svn://10.0.0.236/branches/M15-patch@72213 18797224-902f-48f8-a5cc-f745e15eee43
2000-06-14 11:34:36 +00:00
(no author)
350be55313 This commit was manufactured by cvs2svn to create branch 'M15-patch'.
git-svn-id: svn://10.0.0.236/branches/M15-patch@52901 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-06 02:47:16 +00:00
4 changed files with 105 additions and 615 deletions

View File

@@ -0,0 +1,105 @@
/*
The contents of this file are subject to the Mozilla Public
License Version 1.1 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
implied. See the License for the specific language governing
rights and limitations under the License.
The Original Code is mozilla.org code.
The Initial Developer of the Original Code is Sun Microsystems,
Inc. Portions created by Sun are
Copyright (C) 1999 Sun Microsystems, Inc. All
Rights Reserved.
Contributor(s):
*/
#ifndef __JavaDOMGlobals_h__
#define __JavaDOMGlobals_h__
#include "jni.h"
#include "prclist.h"
#include "nsError.h"
#ifdef ERROR
#undef ERROR
#endif
class nsISupports;
class nsIDOMNode;
struct PRLogModuleInfo;
struct PRLock;
class JavaDOMGlobals {
public:
static jclass attrClass;
static jclass cDataSectionClass;
static jclass commentClass;
static jclass documentClass;
static jclass documentFragmentClass;
static jclass documentTypeClass;
static jclass domImplementationClass;
static jclass elementClass;
static jclass entityClass;
static jclass entityReferenceClass;
static jclass namedNodeMapClass;
static jclass nodeClass;
static jclass nodeListClass;
static jclass notationClass;
static jclass processingInstructionClass;
static jclass textClass;
static jfieldID nodePtrFID;
static jfieldID nodeListPtrFID;
static jfieldID domImplementationPtrFID;
static jfieldID nodeTypeAttributeFID;
static jfieldID nodeTypeCDataSectionFID;
static jfieldID nodeTypeCommentFID;
static jfieldID nodeTypeDocumentFragmentFID;
static jfieldID nodeTypeDocumentFID;
static jfieldID nodeTypeDocumentTypeFID;
static jfieldID nodeTypeElementFID;
static jfieldID nodeTypeEntityFID;
static jfieldID nodeTypeEntityReferenceFID;
static jfieldID nodeTypeNotationFID;
static jfieldID nodeTypeProcessingInstructionFID;
static jfieldID nodeTypeTextFID;
static jclass domExceptionClass;
static jmethodID domExceptionInitMID;
static jclass runtimeExceptionClass;
static jmethodID runtimeExceptionInitMID;
static const char* const DOM_EXCEPTION_MESSAGE[];
typedef enum ExceptionType { EXCEPTION_RUNTIME,
EXCEPTION_DOM } ExceptionType;
static PRLogModuleInfo* log;
static PRCList garbage;
static PRLock* garbageLock;
static PRInt32 javaMaxInt;
static void Initialize(JNIEnv *env);
static void Destroy(JNIEnv *env);
static jobject CreateNodeSubtype(JNIEnv *env,
nsIDOMNode *node);
static void AddToGarbage(nsISupports* domObject);
static void TakeOutGarbage();
static void ThrowException(JNIEnv *env,
const char * message = NULL,
nsresult rv = NS_OK,
ExceptionType exceptionType = EXCEPTION_RUNTIME);
};
#endif /* __JavaDOMGlobals_h__ */

View File

@@ -1,29 +0,0 @@
#! /bin/bash
#### LOCAL MACHINE SETTINGS ####
PORT_64_DBG=8543
PORT_64_OPT=8544
PORT_32_DBG=8545
PORT_32_OPT=8546
if [ "${NSS_TESTS}" = "memtest" ]; then
PORT_64_DBG=8547
PORT_64_OPT=8548
PORT_32_DBG=8549
PORT_32_OPT=8550
fi
JAVA_HOME_64=/usr/lib/jvm/java-1.6.0-openjdk.x86_64
JAVA_HOME_32=/usr/lib/jvm/java-1.6.0-openjdk
# example configuration
case ${HOST} in
host1)
JAVA_HOME_64=/opt/jdk/1.6.0_01/SunOS64
JAVA_HOME_32=/opt/jdk/1.6.0_01/SunOS
;;
host2)
run_bits="32"
export NSS_TESTS=memleak
NO_JSS=1
;;
esac

View File

@@ -1,72 +0,0 @@
#! /bin/bash
HOST=$(hostname | cut -d. -f1)
ARCH=$(uname -s)
ulimit -c unlimited 2> /dev/null
CVSROOT=":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot"
CVS_TRUNK="mozilla/nsprpub
mozilla/dbm
mozilla/security/dbm
mozilla/security/coreconf
mozilla/security/nss
mozilla/security/jss
-r:NSS_3_11_1_RTM:mozilla/security/nss/lib/freebl/ecl/ecl-curve.h"
CVS_STABLE="-r:NSPR_4_6_BRANCH:mozilla/nsprpub
-r:NSS_3_11_BRANCH:mozilla/dbm
-r:NSS_3_11_BRANCH:mozilla/security/dbm
-r:NSS_3_11_BRANCH:mozilla/security/coreconf
-r:NSS_3_11_BRANCH:mozilla/security/nss
-r:JSS_4_2_BRANCH:mozilla/security/jss
-r:NSS_3_11_1_RTM:mozilla/security/nss/lib/freebl/ecl/ecl-curve.h"
export NSS_ENABLE_ECC=1
export NSS_ECC_MORE_THAN_SUITE_B=1
export NSPR_LOG_MODULES="pkix:1"
NSS_BUILD_TARGET="clean nss_build_all"
JSS_BUILD_TARGET="clean all"
CVS=cvs
MAKE=gmake
AWK=awk
PATCH=patch
if [ "${ARCH}" = "SunOS" ]; then
AWK=nawk
PATCH=gpatch
ARCH=SunOS/$(uname -p)
fi
if [ "${ARCH}" = "Linux" -a -f /etc/system-release ]; then
VERSION=`sed -e 's; release ;;' -e 's; (.*)$;;' -e 's;Red Hat Enterprise Linux Server;RHEL;' /etc/system-release`
ARCH=Linux/${VERSION}
echo ${ARCH}
fi
MAIL=mail
TB_SERVER=tinderbox-daemon@tinderbox.mozilla.org
CYCLE_MAX=5
CYCLE_TIME=60
PORT_32_DBG=8111
PORT_32_OPT=8222
PORT_64_DBG=8333
PORT_64_OPT=8444
#### SOME DEFAULTS, CAN CHANGE LATER ####
run_bits="32 64"
run_opt="DBG OPT"
BRANCH="trunk"
### CONFIG.SH CONTAINS CONFIGURATIONS OF ALL MACHINES ###
. config.sh
RUN_BITS="${RUN_BITS:-$run_bits}"
RUN_OPT="${RUN_OPT:-$run_opt}"

View File

@@ -1,514 +0,0 @@
#! /bin/bash
proc_args()
{
while [ -n "$1" ]; do
OPT=$(echo $1 | cut -d= -f1)
VAL=$(echo $1 | cut -d= -f2)
case $OPT in
"--bits")
RUN_BITS="${VAL}"
;;
"--opt")
RUN_OPT="${VAL}"
;;
"--once")
RUN_ONCE=1
;;
"--cycles")
RUN_CYCLES=1
;;
"--nomail")
NO_MAIL=1
;;
"--nocvs")
NO_CVS=1
;;
"--nobuild")
NO_BUILD=1
;;
"--notest")
NO_TEST=1
;;
"--nomove")
NO_MOVE=1
;;
"--nojss")
NO_JSS=1
;;
"--pidfile")
echo " $$" >> ${VAL}
;;
"--memtest")
NSS_TESTS="memtest"
;;
"--nojsssign")
NO_JSS_SIGN=1
;;
*)
echo "Usage: $0 [--bits=BITS] [--opt=OPT] [--once] ..."
echo " --bits - bits mode (32 or 64)"
echo " --opt - debug/opt mode (DBG or OPT)"
echo " --once - run only once"
echo " --cycles - run cycles (pkix, shared db,..) in separate runs"
echo " --memtest - run the memory leak tests"
echo " --nomail - don't send e-mail"
echo " --nocvs - skip CVS checkout (work with old data)"
echo " --nobuild - skip build"
echo " --notest - skip testing"
echo " --nomove - don't move old data directory after testing"
echo " --nojss - don't build/test JSS (NSS only)"
echo " --nojsssign - try to sign jss"
exit 0
;;
esac
shift
done
}
set_env()
{
TESTDIR=$(pwd)
TESTSET=standard
MEM_LEAK=
if [ "${NSS_TESTS}" = "memleak" ]; then
TESTSET=memleak
MEM_LEAK="_MEMLEAK"
fi
DATADIR=$(pwd)$(echo "/data/${HOST}_${RUN_BITS}_${RUN_OPT}${MEM_LEAK}" | sed "s/ /_/g")
LOG_ALL="${DATADIR}/all.log"
LOG_TMP="${DATADIR}/tmp.log"
if [ "${BRANCH}" = "stable" ]; then
CVS_LIST="${CVS_STABLE}"
TB_TREE="NSS-Stable-Branch"
else
CVS_LIST="${CVS_TRUNK}"
TB_TREE="NSS"
fi
}
print_log()
{
DATE=$(date "+TB [%Y-%m-%d %H:%M:%S]")
echo "${DATE} $*"
echo "${DATE} $*" >> ${LOG_ALL}
}
print_result()
{
TESTNAME=$1
RET=$2
EXP=$3
if [ ${RET} -eq ${EXP} ]; then
print_log "${TESTNAME} PASSED"
else
print_log "${TESTNAME} FAILED"
fi
}
print_env()
{
print_log "######## Environment variables ########"
uname -a | tee -a ${LOG_ALL}
if [ -e "/etc/redhat-release" ]; then
cat "/etc/redhat-release" | tee -a ${LOG_ALL}
fi
env | tee -a ${LOG_ALL}
}
print_mail_header()
{
TREE=$1
BUILD_DATE=$2
STATUS=$3
BUILD=$4
echo
echo "tinderbox: tree: ${TREE}"
echo "tinderbox: builddate: ${BUILD_DATE}"
echo "tinderbox: status: ${STATUS}"
echo "tinderbox: build: ${BUILD}"
echo "tinderbox: errorparser: unix"
echo "tinderbox: buildfamily: unix"
echo "tinderbox: END"
echo
}
mail_start()
{
print_mail_header "${TB_TREE}" "${BUILD_DATE}" building "${BRANCH} ${TESTSET} ${HOST} ${ARCH} ${RUN_BITS}bit ${RUN_OPT}" > ${LOG_TMP}
${MAIL} ${TB_SERVER} < ${LOG_TMP}
}
mail_finish()
{
STATUS=$1
print_mail_header "${TB_TREE}" "${BUILD_DATE}" "${STATUS}" "${BRANCH} ${TESTSET} ${HOST} ${ARCH} ${RUN_BITS}bit ${RUN_OPT}" > ${LOG_TMP}
cat ${LOG_ALL} >> ${LOG_TMP}
${MAIL} ${TB_SERVER} < ${LOG_TMP}
}
cvs_checkout()
{
print_log "######## CVS checkout ########"
print_log "$ cd ${DATADIR}"
cd ${DATADIR}
for CVS_FILE in ${CVS_LIST}; do
CVS_FILE=$(echo ${CVS_FILE} | sed "s/:/ /g")
print_log "$ ${CVS} -d ${CVSROOT} co -A ${CVS_FILE}"
${CVS} -d ${CVSROOT} co -A ${CVS_FILE} >> ${LOG_ALL} 2>&1
RET=$?
print_result "CVS checkout ${CVS_FILE}" ${RET} 0
[ ${RET} -eq 0 ] || return ${RET}
done
print_log "$ ${CVS} -d ${CVSROOT} stat mozilla"
${CVS} -d ${CVSROOT} stat mozilla > ${LOG_TMP} 2>&1
RET=$?
print_result "CVS stat mozilla" ${RET} 0
[ ${RET} -eq 0 ] || return ${RET}
if [ -f ${DATADIR}.cvs ]; then
diff -U4 ${DATADIR}.cvs ${LOG_TMP} | grep -i "Repository revision:" >> ${LOG_ALL}
if [ $? -eq 0 ]; then
print_log "CVS change detected"
echo "TinderboxPrint:CVS change" >> ${LOG_ALL}
fi
fi
mv ${LOG_TMP} ${DATADIR}.cvs
return 0
}
apply_patches()
{
[ -z "${NSS_PATCH}" ] && return 0
print_log "######## Applying patches ########"
echo "TinderboxPrint:Using patches" >> ${LOG_ALL}
for PDATA in ${NSS_PATCH}; do
PDIR=$(echo ${PDATA} | cut -d: -f1)
PFILE=$(echo ${PDATA} | cut -d: -f2)
cd ${DATADIR}/${PDIR}
${PATCH} -p0 < ${PFILE} >> ${LOG_ALL} 2>&1
RET=$?
print_result "Applying patch ${PFILE}" ${RET} 0
[ ${RET} -eq 0 ] || return ${RET}
done
return 0
}
set_cycle()
{
BITS=$1
OPT=$2
CYCLE_CNT=$3
if [ "${BITS}" = "64" ]; then
USE_64=1
JAVA_HOME=${JAVA_HOME_64}
PORT_DBG=${PORT_64_DBG}
PORT_OPT=${PORT_64_OPT}
else
USE_64=
JAVA_HOME=${JAVA_HOME_32}
PORT_DBG=${PORT_32_DBG}
PORT_OPT=${PORT_32_OPT}
fi
export USE_64
export JAVA_HOME
BUILD_OPT=
if [ "${OPT}" = "OPT" ]; then
BUILD_OPT=1
XPCLASS=xpclass.jar
PORT=${PORT_OPT}
else
BUILD_OPT=
XPCLASS=xpclass_dbg.jar
PORT=${PORT_DBG}
fi
export BUILD_OPT
PORT_JSS_SERVER=$(expr ${PORT} + 20)
PORT_JSSE_SERVER=$(expr ${PORT} + 40)
export PORT
export PORT_JSS_SERVER
export PORT_JSSE_SERVER
[ -z ${RUN_CYCLES} ] && return 0
CYCLE_ID=$(expr ${CYCLE_CNT} % 4)
case ${CYCLE_ID} in
0)
export NSS_CYCLES=standard
CYCLE_TEXT="Standard"
;;
1)
export NSS_CYCLES=pkix
CYCLE_TEXT="PKIX"
;;
2)
export NSS_CYCLES=upgradedb
CYCLE_TEXT="Upgrade DB"
;;
3)
export NSS_CYCLES=sharedb
CYCLE_TEXT="Shared DB"
;;
esac
}
build_nss()
{
print_log "######## NSS - build - ${BITS} bits - ${OPT} ########"
print_log "$ cd ${DATADIR}/mozilla/security/nss"
cd ${DATADIR}/mozilla/security/nss
print_log "$ ${MAKE} ${NSS_BUILD_TARGET}"
${MAKE} ${NSS_BUILD_TARGET} >> ${LOG_ALL} 2>&1
RET=$?
print_result "NSS - build - ${BITS} bits - ${OPT}" ${RET} 0
[ ${RET} -eq 0 ] || return ${RET}
return 0
}
build_jss()
{
print_log "######## JSS - build - ${BITS} bits - ${OPT} ########"
print_log "$ cd ${DATADIR}/mozilla/security/jss"
cd ${DATADIR}/mozilla/security/jss
print_log "$ ${MAKE} ${JSS_BUILD_TARGET}"
${MAKE} ${JSS_BUILD_TARGET} >> ${LOG_ALL} 2>&1
RET=$?
print_result "JSS build - ${BITS} bits - ${OPT}" ${RET} 0
[ ${RET} -eq 0 ] || return ${RET}
print_log "$ cd ${DATADIR}/mozilla/dist"
cd ${DATADIR}/mozilla/dist
if [ -z "${NO_JSS_SIGN}" ]; then
print_log "cat ${TESTDIR}/keystore.pw | ${JAVA_HOME}/bin/jarsigner -keystore ${TESTDIR}/keystore -internalsf ${XPCLASS} jssdsa"
cat ${TESTDIR}/keystore.pw | ${JAVA_HOME}/bin/jarsigner -keystore ${TESTDIR}/keystore -internalsf ${XPCLASS} jssdsa >> ${LOG_ALL} 2>&1
RET=$?
print_result "JSS - sign JAR files - ${BITS} bits - ${OPT}" ${RET} 0
[ ${RET} -eq 0 ] || return ${RET}
fi
print_log "${JAVA_HOME}/bin/jarsigner -verify -certs ${XPCLASS}"
${JAVA_HOME}/bin/jarsigner -verify -certs ${XPCLASS} >> ${LOG_ALL} 2>&1
RET=$?
print_result "JSS - verify JAR files - ${BITS} bits - ${OPT}" ${RET} 0
[ ${RET} -eq 0 ] || return ${RET}
return 0
}
test_nss()
{
print_log "######## NSS - tests - ${BITS} bits - ${OPT} ########"
[ -n ${RUN_CYCLES} ] && echo "TinderboxPrint:${CYCLE_TEXT}" >> ${LOG_ALL}
print_log "$ cd ${DATADIR}/mozilla/security/nss/tests"
cd ${DATADIR}/mozilla/security/nss/tests
print_log "$ ./all.sh"
./all.sh > ${LOG_TMP} 2>&1
cat ${LOG_TMP} >> ${LOG_ALL}
tail -2 ${DATADIR}/mozilla/tests_results/security/${HOST}.1/results.html | grep END_OF_TEST >> ${LOG_ALL}
RET=$?
grep FAIL ${LOG_TMP}
[ $? -eq 1 ] || RET=1
print_result "NSS - tests - ${BITS} bits - ${OPT}" ${RET} 0
return ${RET}
}
test_jss()
{
print_log "######## JSS - tests - ${BITS} bits - ${OPT} ########"
print_log "$ cd ${DATADIR}/mozilla/security/jss"
cd ${DATADIR}/mozilla/security/jss
print_log "$ ${MAKE} platform"
PLATFORM=$(${MAKE} platform)
print_log "PLATFORM=${PLATFORM}"
print_log "$ cd ${DATADIR}/mozilla/security/jss/org/mozilla/jss/tests"
cd ${DATADIR}/mozilla/security/jss/org/mozilla/jss/tests
print_log "$ perl all.pl dist ${DATADIR}/mozilla/dist/${PLATFORM}"
perl all.pl dist ${DATADIR}/mozilla/dist/${PLATFORM} > ${LOG_TMP} 2>&1
cat ${LOG_TMP} >> ${LOG_ALL}
tail -2 ${LOG_TMP} | grep JSSTEST_RATE > /dev/null
RET=$?
grep FAIL ${LOG_TMP}
[ $? -eq 1 ] || RET=1
print_result "JSS - tests - ${BITS} bits - ${OPT}" ${RET} 0
return ${RET}
}
build_and_test()
{
if [ -z "${NO_BUILD}" ]; then
build_nss
[ $? -eq 0 ] || return 1
fi
if [ -z "${NO_TEST}" ]; then
test_nss
[ $? -eq 0 ] || return 2
fi
if [ -z "${NO_JSS}" -a -z "${NO_BUILD}" ]; then
build_jss
[ $? -eq 0 ] || return 1
fi
if [ -z "${NO_JSS}" -a -z "${NO_TEST}" ]; then
test_jss
[ $? -eq 0 ] || return 2
fi
return 0
}
run_cycle()
{
if [ -z "${NO_MAIL}" ]; then
BUILD_DATE=$(${AWK} 'BEGIN{ srand(); print srand(); }')
mail_start
fi
print_env
STATUS=success
if [ -z "${NO_CVS}" ]; then
cvs_checkout
[ $? -ne 0 ] && STATUS=busted
fi
if [ ${STATUS} = "success" -a -z "${NO_CVS}" ]; then
apply_patches
[ $? -ne 0 ] && STATUS=busted
fi
if [ ${STATUS} = "success" ]; then
build_and_test
RET=$?
[ ${RET} -eq 1 ] && STATUS=busted
[ ${RET} -eq 2 ] && STATUS=testfailed
fi
grep ^TinderboxPrint ${LOG_ALL}
if [ -z "${NO_MAIL}" ]; then
mail_finish ${STATUS}
fi
}
run_all()
{
if [ ${SLEEP_TIME} -gt 0 ]; then
echo "Waiting ${SLEEP_TIME} minutes"
SLEEP_TIME=$(expr ${SLEEP_TIME} \* 60)
sleep ${SLEEP_TIME}
[ $? -eq 0 ] || return 1
fi
START_TIME=$(${AWK} 'BEGIN{ srand(); print srand(); }')
[ -z "${NO_CVS}" ] && rm -rf ${DATADIR}
[ -f "${LOG_ALL}" ] && rm ${LOG_ALL}
mkdir -p ${DATADIR}
set_cycle ${BITS} ${OPT} ${CYCLE_CNT}
run_cycle
CYCLE_ID=$(expr ${CYCLE_CNT} % ${CYCLE_MAX} + 1)
cd ${TESTDIR}
rm -rf ${DATADIR}.last.${CYCLE_ID}
if [ -z "${NO_MOVE}" ]; then
mv ${DATADIR} ${DATADIR}.last.${CYCLE_ID}
else
cp -r ${DATADIR} ${DATADIR}.last.${CYCLE_ID}
fi
CYCLE_CNT=$(expr ${CYCLE_CNT} + 1)
FINISH_TIME=$(${AWK} 'BEGIN{ srand(); print srand(); }')
TESTING_TIME=$(expr ${FINISH_TIME} - ${START_TIME})
TESTING_TIME=$(expr ${TESTING_TIME} / 60)
if [ ${TESTING_TIME} -ge ${CYCLE_TIME} ]; then
SLEEP_TIME=0
else
SLEEP_TIME=$(expr ${CYCLE_TIME} - ${TESTING_TIME})
fi
[ -n "${RUN_ONCE}" ] && RUN=0
}
main()
{
CYCLE_CNT=0
SLEEP_TIME=0
RUN=1
VALID=0
while [ ${RUN} -eq 1 ]; do
for BITS in 32 64; do
echo ${RUN_BITS} | grep ${BITS} > /dev/null
[ $? -eq 0 ] || continue
for OPT in DBG OPT; do
echo ${RUN_OPT} | grep ${OPT} > /dev/null
[ $? -eq 0 ] || continue
if [ ${RUN} -eq 1 ]; then
VALID=1
run_all
fi
done
done
if [ ${VALID} -ne 1 ]; then
echo "Need to set valid bits/opt values."
RUN=0
fi
done
return 0
}
echo "tinderbox args: $0 $@"
. env.sh
proc_args "$@"
set_env
main