SoftwareTesting:Tools:jsshHowTo

From MozillaWiki
Jump to: navigation, search

jssh test harness documentation

Dave Liebreich has documented this and will likely contain updates as he moves forward with this test harness.

requirements

python (2.3 or greater)

firefox 1.5 with jssh - built with mozconfig

see Build Documentation for more details

. $topsrcdir/browser/config/mozconfig

mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --enable-application=browser
mk_add_options MOZ_OBJDIR=@topsrcdir@/../objdir/browser
# mk_add_options MOZ_CO_MODULE=mozilla/js/tests

ac_add_options --enable-extensions=default,jssh
mk_add_options MOZ_MAKE_FLAGS="-j4"

firefox 2.0 with jssh

pull MOZILLA_1_8_BRANCH from cvs

cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH mozilla/client.mk

or, checkout the client.mk

cvs co -r MOZILLA_1_8_BRANCH mozilla/client.mk

checkout source via make

make -f client.mk checkout MOZ_CO_PROJECT=browser

add jssh extension to source

cvs co -D 2006-04-15 mozilla/extensions/jssh

modify the mozilla/browser/config/mozconfig file with the above extensions modifications.

build the package

make -f client.mk build

python test harness and jssh driver

JSSH Test Harness Spike


Patching

To build on the lastest MOZILLA_1_8_BRANCH I had to make the following changes

Index: nsJSSh.cpp
===================================================================
RCS file: /cvsroot/mozilla/extensions/jssh/nsJSSh.cpp,v
retrieving revision 1.3
diff -u -r1.3 nsJSSh.cpp
--- nsJSSh.cpp  31 Mar 2006 04:40:59 -0000  1.3
+++ nsJSSh.cpp  4 Feb 2007 19:14:32 -0000
@@ -40,10 +40,11 @@
 #include "nsIJSRuntimeService.h"
 #include "nsIServiceManager.h"
 #include "nsIXPConnect.h"
+#include "nsMemory.h"
 #include "nsIProxyObjectManager.h"
 #include "nsIEventQueueService.h"
 #include "nsIScriptSecurityManager.h"
-#include "nsDependentString.h"
+#include "nsServiceManagerUtils.h"
 #include "nsIIOService.h"
 #include "nsNetCID.h"
 #include "nsIChannel.h"
Index: nsJSSh.h
===================================================================
RCS file: /cvsroot/mozilla/extensions/jssh/nsJSSh.h,v
retrieving revision 1.3
diff -u -r1.3 nsJSSh.h
--- nsJSSh.h  31 Mar 2006 04:40:59 -0000  1.3
+++ nsJSSh.h  4 Feb 2007 19:14:32 -0000
@@ -47,7 +47,7 @@
 #include "nsIJSSh.h"
 #include "nsIJSContextStack.h"
 #include "nsIPrincipal.h"
-#include "nsString.h"
+#include "nsStringAPI.h"
 #include "nsIScriptObjectPrincipal.h"
 #include "nsIXPCScriptable.h"

Index: nsJSShServer.cpp
===================================================================
RCS file: /cvsroot/mozilla/extensions/jssh/nsJSShServer.cpp,v
retrieving revision 1.3
diff -u -r1.3 nsJSShServer.cpp
--- nsJSShServer.cpp  31 Mar 2006 04:40:59 -0000  1.3
+++ nsJSShServer.cpp  4 Feb 2007 19:14:32 -0000
@@ -40,6 +40,7 @@
 #include "nsNetCID.h"
 #include "nsISocketTransport.h"
 #include "nsIComponentManager.h"
+#include "nsComponentManagerUtils.h"
 #include "nsIInputStream.h"
 #include "nsIOutputStream.h"
 #include "nsIThread.h"
@@ -197,7 +198,7 @@
     mServerSocket->Close();
   mServerSocket = nsnull;
   mServerPort = 0;
-  mServerStartupURI.Truncate();
+  mServerStartupURI.SetLength(0);
   mServerLoopbackOnly = PR_FALSE;
   return NS_OK;
 }
Index: nsJSShServer.h
===================================================================
RCS file: /cvsroot/mozilla/extensions/jssh/nsJSShServer.h,v
retrieving revision 1.3
diff -u -r1.3 nsJSShServer.h
--- nsJSShServer.h  31 Mar 2006 04:40:59 -0000  1.3
+++ nsJSShServer.h  4 Feb 2007 19:14:32 -0000
@@ -42,7 +42,7 @@
 #include "nsIJSShServer.h"
 #include "nsCOMPtr.h"
 #include "nsIServerSocket.h"
-#include "nsString.h"
+#include "nsStringAPI.h"

 class nsJSShServer : public nsIJSShServer
 {