bug 562023: add mips acceptance testing to deep phase (r+jsudduth)
authorBrent Baker <brbaker@adobe.com>
Fri, 25 Jun 2010 11:28:50 -0400
changeset 4881 04811339be3b3391de40ebf44006ec2ba5c5ca28
parent 4880 35bb94c46b8ead20646df066b3733eb3a7546d8a
child 4882 c705f998093b53f1d62f3ff02a5b2e2fba906742
push id2587
push userbrbaker@adobe.com
push dateFri, 25 Jun 2010 15:29:10 +0000
bugs562023, 574677
bug 562023: add mips acceptance testing to deep phase (r+jsudduth) bug 574677: replace slower PPC machine in the build system with newer PPC xserve (p=dschaffe,r+brbaker)
build/buildbot/master/argo.py
build/buildbot/master/commonsteps.py
build/buildbot/master/master.cfg
build/buildbot/master/public_html/announce.html
build/buildbot/master/sandbox.py
build/buildbot/master/tamarinredux.py
build/buildbot/slaves/all/run-acceptance-generic-ssh.sh
build/buildbot/slaves/all/ssh-shell.sh
build/buildbot/slaves/linux-mips-deep/buildbot.tac
build/buildbot/slaves/linux-mips-deep/scripts/environment.sh
test/acceptance/testconfig.txt
--- a/build/buildbot/master/argo.py
+++ b/build/buildbot/master/argo.py
@@ -361,17 +361,17 @@ class argo:
     mac_ppc_104b_compile_factory = factory.BuildFactory()
     mac_ppc_104b_compile_factory.addStep(sync_clean)
     mac_ppc_104b_compile_factory.addStep(sync_clone(url=HG_URL))
     mac_ppc_104b_compile_factory.addStep(sync_update)
     mac_ppc_104b_compile_factory.addStep(bb_slaveupdate(slave="mac-ppc-10_4"))
 
     mac_ppc_104b_compile_builder = {
                 'name': "mac-ppc-10.4b-compile-argo",
-                'slavename': "asteammac9",
+                'slavename': "asteammac17",
                 'factory': mac_ppc_104b_compile_factory,
                 'builddir': './argo-mac-ppc-10_4b-compile',
     }
 
 
 
     ###########################################
     #### builder for mac-ppc-10_5a-compile ####
@@ -831,17 +831,17 @@ class argo:
     #########################################
     mac_ppc_104b_smoke_factory = factory.BuildFactory()
     mac_ppc_104b_smoke_factory.addStep(download_testmedia)
     mac_ppc_104b_smoke_factory.addStep(test_smoke)
     mac_ppc_104b_smoke_factory.addStep(util_process_clean)
 
     mac_ppc_104b_smoke_builder = {
                 'name': "mac-ppc-10.4b-smoke-argo",
-                'slavename': "asteammac9",
+                'slavename': "asteammac17",
                 'factory': mac_ppc_104b_smoke_factory,
                 'builddir': './argo-mac-ppc-10_4b-smoke',
     }
 
 
     #########################################
     #### builder for mac-ppc-10_5a-smoke ####
     #########################################
@@ -1200,17 +1200,17 @@ class argo:
     mac_ppc_104b_test_factory = factory.BuildFactory()
     mac_ppc_104b_test_factory.addStep(test_generic(name="ReleaseDebugger", shellname="avmshell_s_104_ppc", vmargs="", config="", scriptargs=""))
     mac_ppc_104b_test_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd_104_ppc", vmargs="", config="", scriptargs=""))
     mac_ppc_104b_test_factory.addStep(util_process_clean)
     mac_ppc_104b_test_factory.addStep(util_clean_buildsdir)
 
     mac_ppc_104b_test_builder = {
                 'name': "mac-ppc-10.4b-test-argo",
-                'slavename': "asteammac9",
+                'slavename': "asteammac17",
                 'factory': mac_ppc_104b_test_factory,
                 'builddir': './argo-mac-ppc-10_4b-test',
     }
 
 
     ########################################
     #### builder for mac-ppc-10_5a-test ####
     ########################################
--- a/build/buildbot/master/commonsteps.py
+++ b/build/buildbot/master/commonsteps.py
@@ -101,16 +101,28 @@ def test_generic(name, shellname, vmargs
             env={'branch': WithProperties('%s','branch'), 'silent':WithProperties('%s','silent')},
             description='starting to run %s vmtests...' % name,
             descriptionDone='finished %s vmtests' % name,
             name="Testsuite_%s" % name,
             workdir="../repo/build/buildbot/slaves/scripts"
             )
     
 
+def test_generic_ssh(name, shellname, vmargs, config, scriptargs):
+    # factory.addStep(test_generic_ssh("Release", "avmshell", "", "", ""))
+    return TestSuiteShellCommand(
+            command=['../all/run-acceptance-generic-ssh.sh', WithProperties('%s','revision'), '%s' % shellname, '%s' % vmargs, '%s' % config, '%s' % scriptargs],
+            env={'branch': WithProperties('%s','branch'), 'silent':WithProperties('%s','silent')},
+            description='starting to run %s vmtests...' % name,
+            descriptionDone='finished %s vmtests' % name,
+            name="Testsuite_%s" % name,
+            workdir="../repo/build/buildbot/slaves/scripts"
+            )
+ 
+
 def test_emulator_generic(name, shellname, vmargs, config, scriptargs):
     # factory.addStep(test_emulator_generic("Release", "avmshell", "", "", ""))
     return TestSuiteShellCommand(
             command=['../all/run-acceptance-emulator-generic.sh', WithProperties('%s','revision'), '%s' % shellname, '%s' % vmargs, '%s' % config, '%s' % scriptargs],
             env={'branch': WithProperties('%s','branch'), 'silent':WithProperties('%s','silent')},
             description='starting to run %s vmtests...' % name,
             descriptionDone='finished %s vmtests' % name,
             name="Testsuite_%s" % name,
--- a/build/buildbot/master/master.cfg
+++ b/build/buildbot/master/master.cfg
@@ -59,32 +59,33 @@ c['slaves'] = [BuildSlave("asteamwin2", 
                BuildSlave("asteamwin3", "asteam"),
                BuildSlave("asteamwin11", "asteam"),
                BuildSlave("asteamwin11-sb", "asteam"),
 
                BuildSlave("asteammac1", "asteam"),
                BuildSlave("asteammac1-android", "asteam"),
                BuildSlave("asteammac4", "asteam"),
                BuildSlave("asteammac6", "asteam"),
-               BuildSlave("asteammac9", "asteam"),
                BuildSlave("asteammac10", "asteam"),
                BuildSlave("asteammac12", "asteam"),
                BuildSlave("asteammac12-10_5", "asteam"),
                BuildSlave("asteammac12-64bit", "asteam"),
+               BuildSlave("asteammac17", "asteam"),
                BuildSlave("tamarin-xserve", "asteam"),
                BuildSlave("tamarin-xserve2", "asteam"),
             
                BuildSlave("asteammac5-64bit", "asteam"),
 
                BuildSlave("asteamlin1", "asteam"),
                BuildSlave("asteamlin5", "asteam"),
                BuildSlave("asteambeagleboard2", "asteam"),
                BuildSlave("asteambeagle4", "asteam"),
                BuildSlave("asteambeagleboard3", "asteam"),
                BuildSlave("asteamlin1-mips", "asteam"),
+               BuildSlave("asteamlin1-mips-deep", "asteam"),
 
                BuildSlave("asteamsol3", "asteam"),
                BuildSlave("asteamsol4", "asteam"),
                BuildSlave("asteamsol1", "asteam"),
 
                BuildSlave("asteamwin1", "asteam"),
                BuildSlave("asteammac2", "asteam"),
                BuildSlave("asteammac7", "asteam"),
--- a/build/buildbot/master/public_html/announce.html
+++ b/build/buildbot/master/public_html/announce.html
@@ -111,17 +111,17 @@
             </td>
             <td width="72%">
                 <table width="100%">
                     <script language="javascript">
                         var compile = "builder=windows-compile&builder=windows64-compile&builder=mac-intel-10.4-compile&builder=mac-intel-10.5-compile&builder=mac64-intel-compile&builder=mac-ppc-10.4a-compile&builder=mac-ppc-10.4b-compile&builder=mac-ppc-10.5a-compile&builder=mac-ppc-10.5b-compile&builder=mac64-ppc-compile&builder=linux-compile&builder=linux64-compile&builder=winmobile-emulator-compile&builder=solaris-sparc-compile&builder=solaris-sparc2-compile&builder=android-compile&builder=linux-arm-compile&builder=linux-arm2-compile&builder=linux-mips-compile"
                         var smoke = "builder=windows-smoke&builder=windows64-smoke&builder=mac-intel-10.4-smoke&builder=mac-intel-10.5-smoke&builder=mac64-intel-smoke&builder=mac-ppc-10.4a-smoke&builder=mac-ppc-10.4b-smoke&builder=mac-ppc-10.5a-smoke&builder=mac-ppc-10.5b-smoke&builder=mac64-ppc-smoke&builder=linux-smoke&builder=linux64-smoke&builder=winmobile-emulator-smoke&builder=solaris-sparc-smoke&builder=solaris-sparc2-smoke&builder=android-smoke&builder=linux-arm-smoke&builder=linux-arm2-smoke&builder=linux-mips-smoke"
                         var test = "builder=windows-test&builder=windows64-test&builder=mac-intel-10.4-test&builder=mac-intel-10.5-test&builder=mac64-intel-test&builder=mac-ppc-10.4a-test&builder=mac-ppc-10.4b-test&builder=mac-ppc-10.5a-test&builder=mac-ppc-10.5b-test&builder=mac64-ppc-test&builder=linux-test&builder=linux64-test&builder=winmobile-emulator-test&builder=solaris-sparc-test&builder=solaris-sparc2-test&builder=android-test&builder=linux-arm-test&builder=linux-arm2-test&builder=linux-mips-test"
                         var performance = "builder=windows-performance&builder=mac-performance&builder=mac64-performance&builder=mac-ppc-performance&builder=linux-performance&builder=winmobile-performance&builder=android-performance"
-                        var deep = "builder=windows-deep&builder=mac-deep&builder=windows-p3-deep&builder=mac-ppc-deep&builder=windows64-deep&builder=solaris-sparc-deep&builder=winmobile-emulator-deep&builder=linux-deep&builder=linux-arm-deep&builder=windows-frr"
+                        var deep = "builder=windows-deep&builder=windows-p3-deep&builder=mac-deep&builder=mac-ppc-deep&builder=windows64-deep&builder=solaris-sparc-deep&builder=winmobile-emulator-deep&builder=linux-deep&builder=linux-arm-deep&builder=linux-mips-deep&builder=windows-frr"
 
                         var compile_argo = "builder=windows-compile-argo&builder=windows64-compile-argo&builder=mac-intel-10.4-compile-argo&builder=mac-intel-10.5-compile-argo&builder=mac64-intel-compile-argo&builder=mac-ppc-10.4a-compile-argo&builder=mac-ppc-10.4b-compile-argo&builder=mac-ppc-10.5a-compile-argo&builder=mac-ppc-10.5b-compile-argo&builder=mac64-ppc-compile-argo&builder=linux-compile-argo&builder=linux64-compile-argo&builder=winmobile-emulator-compile-argo&builder=solaris-sparc-compile-argo&builder=solaris-sparc2-compile-argo&builder=android-compile-argo&builder=linux-arm-compile-argo&builder=linux-arm2-compile-argo"
                         var smoke_argo = "builder=windows-smoke-argo&builder=windows64-smoke-argo&builder=mac-intel-10.4-smoke-argo&builder=mac-intel-10.5-smoke-argo&builder=mac64-intel-smoke-argo&builder=mac-ppc-10.4a-smoke-argo&builder=mac-ppc-10.4b-smoke-argo&builder=mac-ppc-10.5a-smoke-argo&builder=mac-ppc-10.5b-smoke-argo&builder=mac64-ppc-smoke-argo&builder=linux-smoke-argo&builder=linux64-smoke-argo&builder=winmobile-emulator-smoke-argo&builder=solaris-sparc-smoke-argo&builder=solaris-sparc2-smoke-argo&builder=android-smoke-argo&builder=linux-arm-smoke-argo&builder=linux-arm2-smoke-argo"
                         var test_argo = "builder=windows-test-argo&builder=windows64-test-argo&builder=mac-intel-10.4-test-argo&builder=mac-intel-10.5-test-argo&builder=mac64-intel-test-argo&builder=mac-ppc-10.4a-test-argo&builder=mac-ppc-10.4b-test-argo&builder=mac-ppc-10.5a-test-argo&builder=mac-ppc-10.5b-test-argo&builder=mac64-ppc-test-argo&builder=linux-test-argo&builder=linux64-test-argo&builder=winmobile-emulator-test-argo&builder=solaris-sparc-test-argo&builder=solaris-sparc2-test-argo&builder=android-test-argo&builder=linux-arm-test-argo&builder=linux-arm2-test-argo"
                         var performance_argo = "builder=windows-performance-argo&builder=mac-performance-argo&builder=mac64-performance-argo&builder=mac-ppc-performance-argo&builder=linux-performance-argo&builder=winmobile-performance-argo"
                         var deep_argo = "builder=windows-deep-argo&builder=windows-p3-deep-argo&builder=mac-ppc-deep-argo&builder=windows64-deep-argo&builder=solaris-sparc-deep-argo&builder=winmobile-emulator-deep-argo&builder=linux-deep-argo&builder=linux-arm-deep-argo&builder=windows-frr-argo"
 
                         var compile_sandbox = "builder=windows-compile-sandbox&builder=windows64-compile-sandbox&builder=mac-intel-10.4-compile-sandbox&builder=mac-intel-10.5-compile-sandbox&builder=mac64-intel-compile-sandbox&builder=mac-ppc-10.4a-compile-sandbox&builder=mac-ppc-10.4b-compile-sandbox&builder=mac-ppc-10.5a-compile-sandbox&builder=mac-ppc-10.5b-compile-sandbox&builder=mac64-ppc-compile-sandbox&builder=linux-compile-sandbox&builder=linux64-compile-sandbox&builder=winmobile-emulator-compile-sandbox&builder=solaris-sparc-compile-sandbox&builder=solaris-sparc2-compile-sandbox&builder=android-compile-sandbox&builder=linux-arm-compile-sandbox&builder=linux-arm2-compile-sandbox&builder=linux-mips-compile-sandbox"
--- a/build/buildbot/master/sandbox.py
+++ b/build/buildbot/master/sandbox.py
@@ -312,17 +312,17 @@ class sandbox:
     sb_mac_ppc_104b_compile_factory = factory.BuildFactory()
     sb_mac_ppc_104b_compile_factory.addStep(sync_clean)
     sb_mac_ppc_104b_compile_factory.addStep(sync_clone_sandbox)
     sb_mac_ppc_104b_compile_factory.addStep(sync_update)
     sb_mac_ppc_104b_compile_factory.addStep(bb_slaveupdate(slave="mac-ppc-10_4"))
 
     sb_mac_ppc_104b_compile_builder = {
                 'name': "mac-ppc-10.4b-compile-sandbox",
-                'slavename': "asteammac9",
+                'slavename': "asteammac17",
                 'factory': sb_mac_ppc_104b_compile_factory,
                 'builddir': './sandbox-mac-ppc-10_4b-compile',
     }
 
 
 
     ###################################################
     #### builder for mac-ppc-10_5a-compile-sandbox ####
@@ -830,17 +830,17 @@ class sandbox:
     #################################################
     sb_mac_ppc_104b_smoke_factory = factory.BuildFactory()
     sb_mac_ppc_104b_smoke_factory.addStep(download_testmedia)
     sb_mac_ppc_104b_smoke_factory.addStep(test_smoke)
     sb_mac_ppc_104b_smoke_factory.addStep(util_process_clean)
 
     sb_mac_ppc_104b_smoke_builder = {
                 'name': "mac-ppc-10.4b-smoke-sandbox",
-                'slavename': "asteammac9",
+                'slavename': "asteammac17",
                 'factory': sb_mac_ppc_104b_smoke_factory,
                 'builddir': './sandbox-mac-ppc-10_4b-smoke',
     }
 
 
     #################################################
     #### builder for mac-ppc-10_5a-smoke-sandbox ####
     #################################################
@@ -1218,17 +1218,17 @@ class sandbox:
     sb_mac_ppc_104b_test_factory = factory.BuildFactory()
     sb_mac_ppc_104b_test_factory.addStep(test_generic(name="ReleaseDebugger", shellname="avmshell_s_104_ppc", vmargs="", config="", scriptargs=""))
     sb_mac_ppc_104b_test_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd_104_ppc", vmargs="", config="", scriptargs=""))
     sb_mac_ppc_104b_test_factory.addStep(util_process_clean)
     sb_mac_ppc_104b_test_factory.addStep(util_clean_buildsdir)
 
     sb_mac_ppc_104b_test_builder = {
                 'name': "mac-ppc-10.4b-test-sandbox",
-                'slavename': "asteammac9",
+                'slavename': "asteammac17",
                 'factory': sb_mac_ppc_104b_test_factory,
                 'builddir': './sandbox-mac-ppc-10_4b-test',
     }
 
 
     ################################################
     #### builder for mac-ppc-10_5a-test-sandbox ####
     ################################################
--- a/build/buildbot/master/tamarinredux.py
+++ b/build/buildbot/master/tamarinredux.py
@@ -162,28 +162,30 @@ class tamarinredux:
                                     "windows-frr",
                                     "mac-deep",
                                     "mac-ppc-deep",
                                     "solaris-sparc-deep",
                                     "windows64-deep",
                                     "linux-deep",
                                     "linux-arm-deep",
                                     "winmobile-emulator-deep",
+                                    "linux-mips-deep",
                                                                     ],
                     builderDependencies=[
                                   ["linux-deep", "linux-test"],
                                   ["linux-arm-deep", "linux-arm-test"],
                                   ["windows-deep", "windows-test"],
                                   ["windows-p3-deep", "windows-test"],
                                   ["windows-frr", "windows-test"], 
                                   ["mac-deep","mac-intel-10.5-test"],
                                   ["mac-ppc-deep", "mac-ppc-10.5a-test"], 
                                   ["solaris-sparc-deep", "solaris-sparc-test"], 
                                   ["windows64-deep", "windows64-test"], 
                                   ["winmobile-emulator-deep", "winmobile-emulator-test"],
+                                  ["linux-mips-deep", "linux-mips-test"],
                                  ])
 
 
     
     schedulers = [compile, smoke, test, performance, deep]
     
     
 
@@ -370,17 +372,17 @@ class tamarinredux:
     mac_ppc_104b_compile_factory = factory.BuildFactory()
     mac_ppc_104b_compile_factory.addStep(sync_clean)
     mac_ppc_104b_compile_factory.addStep(sync_clone(url=HG_URL))
     mac_ppc_104b_compile_factory.addStep(sync_update)
     mac_ppc_104b_compile_factory.addStep(bb_slaveupdate(slave="mac-ppc-10_4"))
 
     mac_ppc_104b_compile_builder = {
                 'name': "mac-ppc-10.4b-compile",
-                'slavename': "asteammac9",
+                'slavename': "asteammac17",
                 'factory': mac_ppc_104b_compile_factory,
                 'builddir': './mac-ppc-10_4b-compile',
     }
 
 
 
     ###########################################
     #### builder for mac-ppc-10_5a-compile ####
@@ -890,17 +892,17 @@ class tamarinredux:
     #########################################
     mac_ppc_104b_smoke_factory = factory.BuildFactory()
     mac_ppc_104b_smoke_factory.addStep(download_testmedia)
     mac_ppc_104b_smoke_factory.addStep(test_smoke)
     mac_ppc_104b_smoke_factory.addStep(util_process_clean)
 
     mac_ppc_104b_smoke_builder = {
                 'name': "mac-ppc-10.4b-smoke",
-                'slavename': "asteammac9",
+                'slavename': "asteammac17",
                 'factory': mac_ppc_104b_smoke_factory,
                 'builddir': './mac-ppc-10_4b-smoke',
     }
 
 
     #########################################
     #### builder for mac-ppc-10_5a-smoke ####
     #########################################
@@ -1281,17 +1283,17 @@ class tamarinredux:
     mac_ppc_104b_test_factory = factory.BuildFactory()
     mac_ppc_104b_test_factory.addStep(test_generic(name="ReleaseDebugger", shellname="avmshell_s_104_ppc", vmargs="", config="", scriptargs=""))
     mac_ppc_104b_test_factory.addStep(test_generic(name="DebugDebugger", shellname="avmshell_sd_104_ppc", vmargs="", config="", scriptargs=""))
     mac_ppc_104b_test_factory.addStep(util_process_clean)
     mac_ppc_104b_test_factory.addStep(util_clean_buildsdir)
 
     mac_ppc_104b_test_builder = {
                 'name': "mac-ppc-10.4b-test",
-                'slavename': "asteammac9",
+                'slavename': "asteammac17",
                 'factory': mac_ppc_104b_test_factory,
                 'builddir': './mac-ppc-10_4b-test',
     }
 
 
     ########################################
     #### builder for mac-ppc-10_5a-test ####
     ########################################
@@ -2078,16 +2080,38 @@ class tamarinredux:
     linux_arm_deep_factory.addStep(util_clean_buildsdir)
 
     linux_arm_deep_builder = {
                 'name': "linux-arm-deep",
                 'slavename': "asteambeagleboard3",
                 'factory': linux_arm_deep_factory,
                 'builddir': './linux-arm-deep',
     }
+
+
+    #######################################
+    #### builder for linux-mips-deep   ####
+    #######################################
+    linux_mips_deep_factory = factory.BuildFactory()
+    linux_mips_deep_factory.addStep(sync_clean)
+    linux_mips_deep_factory.addStep(sync_clone(url=HG_URL))
+    linux_mips_deep_factory.addStep(sync_update)
+    linux_mips_deep_factory.addStep(bb_slaveupdate(slave="linux-mips-deep"))
+    linux_mips_deep_factory.addStep(download_testmedia)
+    linux_mips_deep_factory.addStep(test_generic_ssh(name="Release", shellname="avmshell_mips", vmargs="", config="mips-lnx-tvm-release", scriptargs="--threads=1"))
+    linux_mips_deep_factory.addStep(test_generic_ssh(name="Debug", shellname="avmshell_mips_d", vmargs="", config="mips-lnx-tvm-debug", scriptargs="--threads=1"))
+    linux_mips_deep_factory.addStep(util_process_clean)
+    linux_mips_deep_factory.addStep(util_clean_buildsdir)
+
+    linux_mips_deep_builder = {
+                'name': "linux-mips-deep",
+                'slavename': "asteamlin1-mips-deep",
+                'factory': linux_mips_deep_factory,
+                'builddir': './linux-mips-deep',
+    }
     
     builders = [
                 windows_compile_builder,
                 windows_64_compile_builder,
                 mac_intel_104_compile_builder,
                 mac_intel_105_compile_builder,
                 mac_intel_64_compile_builder,
                 mac_ppc_104a_compile_builder,
@@ -2157,12 +2181,13 @@ class tamarinredux:
                 windows_p3_deep_builder,
                 mac_deep_builder,
                 mac_ppc_deep_builder,
                 windows_64_deep_builder,
                 solaris_sparc_deep_builder,
                 winmobile_emulator_deep_builder,
                 linux_deep_builder,
                 linux_arm_deep_builder,
+                linux_mips_deep_builder,
                 windows_frr_builder
                 ]
 
 
new file mode 100755
--- /dev/null
+++ b/build/buildbot/slaves/all/run-acceptance-generic-ssh.sh
@@ -0,0 +1,193 @@
+#!/bin/bash
+#  ***** BEGIN LICENSE BLOCK *****
+#  Version: MPL 1.1/GPL 2.0/LGPL 2.1
+# 
+#  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 [Open Source Virtual Machine.].
+# 
+#  The Initial Developer of the Original Code is
+#  Adobe System Incorporated.
+#  Portions created by the Initial Developer are Copyright (C) 2010
+#  the Initial Developer. All Rights Reserved.
+# 
+#  Contributor(s):
+#    Adobe AS3 Team
+# 
+#  Alternatively, the contents of this file may be used under the terms of
+#  either the GNU General Public License Version 2 or later (the "GPL"), or
+#  the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+#  in which case the provisions of the GPL or the LGPL are applicable instead
+#  of those above. If you wish to allow use of your version of this file only
+#  under the terms of either the GPL or the LGPL, and not to allow others to
+#  use your version of this file under the terms of the MPL, indicate your
+#  decision by deleting the provisions above and replace them with the notice
+#  and other provisions required by the GPL or the LGPL. If you do not delete
+#  the provisions above, a recipient may use your version of this file under
+#  the terms of any one of the MPL, the GPL or the LGPL.
+# 
+#  ***** END LICENSE BLOCK ****
+(set -o igncr) 2>/dev/null && set -o igncr; # comment is needed
+
+##
+# Bring in the environment variables
+##
+. ./environment.sh
+
+
+##
+# Calculate the change number and change id
+##
+. ../all/util-calculate-change.sh $1
+
+
+
+
+showhelp ()
+{
+    echo ""
+    echo "usage: run-acceptance-generic-ssh.sh <change> <filename> <vmargs> <config> <scriptargs>"
+    echo "  <change>     build number of shell to test"
+    echo "  <filename>   name of the shell, do not include file extenstion"
+    echo "  <vmargs>     vmargs to be passed or empty quoted string"
+    echo "  <config>     custom config string to be passed to runtests.py"
+    echo "               or an empty string"
+    echo "  <scriptargs> (optional) additional runtests.py args to be passed, can be"
+    echo "               args and test/directories to run, value is appended to call"
+    exit 1
+}
+
+if [ "$#" -lt 4 ]
+then
+    echo "not enough args passed"
+    showhelp
+fi
+
+filename=$2
+vmargs=$3
+config=$4
+
+# assign the remaining positional params to scriptargs
+shift 4
+scriptargs=$*
+
+
+export shell=$filename$shell_extension
+
+
+##
+# Download the AVMSHELL if it does not exist
+##
+if [ ! -e "$buildsdir/$change-${changeid}/$platform/$shell" ]; then
+    echo "Download AVMSHELL: ${shell}"
+    ../all/util-download.sh $vmbuilds/$branch/$change-${changeid}/$platform/$shell $buildsdir/$change-${changeid}/$platform/$shell
+    ret=$?
+    test "$ret" = "0" || {
+        echo "Downloading of $shell failed"
+        rm -f $buildsdir/$change-${changeid}/$platform/$shell
+        exit 1
+    }
+    chmod +x $buildsdir/$change-${changeid}/$platform/$shell
+fi
+
+
+##
+# Download the latest asc.jar if it does not exist
+##
+if [ ! -e "$basedir/utils/asc.jar" ]; then
+    echo "Download asc.jar"
+    ../all/util-download.sh $ascbuilds/asc.jar $basedir/utils/asc.jar
+    ret=$?
+    test "$ret" = "0" || {
+        echo "Downloading of asc.jar failed"
+        rm -f $basedir/utils/asc.jar
+        exit 1
+    }
+fi
+
+
+echo ""
+echo "Missing media will be compiled using the following ASC version:"
+echo "`java -jar $basedir/utils/asc.jar`"
+echo ""
+
+echo "setup $branch/${change}-${changeid}"
+../all/ssh-shell-deployer.sh ${change} ${buildsdir}/${change}-${changeid}/${platform}/$shell
+res=$?
+test "$res" = "0" || {
+    echo "message: setup failed"
+    exit 1
+}
+
+export ASC=$basedir/utils/asc.jar
+export BUILTINABC=$basedir/core/$builtinABC
+export SHELLABC=$basedir/shell/$shellABC
+export AVM=$basedir/build/buildbot/slaves/all/ssh-shell.sh
+
+echo AVM=$AVM
+test -f $AVM || {
+  echo "ERROR: $AVM not found"
+  exit 1
+}
+
+echo ""
+echo "*******************************************************************************"
+echo AVM=$AVM
+echo "`$AVM`"
+echo ""
+echo "shell compiled with these features:"
+features=`$AVM -Dversion | grep AVM | sed 's/\;/ /g' | sed 's/features //g'`
+for i in ${features}; do
+    echo feature: $i
+done
+echo ""
+echo "*******************************************************************************"
+echo ""
+
+
+##
+# Ensure that the system is clean and ready
+##
+cd $basedir/build/buildbot/slaves/scripts
+../all/util-acceptance-clean.sh
+
+cd $basedir/test/acceptance
+
+
+test "$silent" = "true" && {
+    logfile=`echo acceptance-$shell$vmargs.log | sed 's/ //g' | sed 's/\.exe//g'`
+    silentoptions="-l $logfile --summaryonly"
+}
+
+if [ "$config" != "" ]
+then
+    echo "message: $py ./runtests.py --vmargs=\"${vmargs}\" --config=${config} --notimecheck ${scriptargs} ${silentoptions}"
+    $py ./runtests.py  --vmargs="${vmargs}" --config=${config} --notimecheck ${scriptargs} ${silentoptions}
+else
+    echo "message: $py ./runtests.py --vmargs=\"${vmargs}\" --notimecheck ${scriptargs} ${silentoptions}" 
+    $py ./runtests.py  --vmargs="${vmargs}" --notimecheck ${scriptargs} ${silentoptions}
+fi
+
+test "$silent" = "true" && {
+    # upload log to asteam
+    . $basedir/build/buildbot/slaves/all/util-upload-ftp-asteam.sh $logfile $ftp_asteam/$branch/${change}-${changeid}/$platform/
+    echo "Acceptance logfile can be found here: http://asteam.corp.adobe.com/builds/$branch/${change}-${changeid}/$platform/$logfile"
+}
+
+##
+# Ensure that the system is torn down and clean
+##
+cd $basedir/build/buildbot/slaves/scripts
+../all/util-acceptance-teardown.sh
+
+exit 0
+
+
--- a/build/buildbot/slaves/all/ssh-shell.sh
+++ b/build/buildbot/slaves/all/ssh-shell.sh
@@ -70,18 +70,20 @@ else
            filelist="$filelist $flatfile"
            scp $file $SSH_SHELL_REMOTE_USER@$SSH_SHELL_REMOTE_HOST:$SSH_SHELL_REMOTE_DIR/$flatfile > /dev/null
            args="$args $flatfile"       
        else
            args="$args $a"
        fi
     done
     # workaround for not returning exit code, run a shell script and print exit code to stdout
-    ssh $SSH_SHELL_REMOTE_USER@$SSH_SHELL_REMOTE_HOST "cd $SSH_SHELL_REMOTE_DIR;./ssh-shell-runner.sh $args" > /tmp/stdout
-    ret=`cat /tmp/stdout | grep "EXITCODE=" | awk -F= '{printf("%d",$2)}'`
+    ssh $SSH_SHELL_REMOTE_USER@$SSH_SHELL_REMOTE_HOST "cd $SSH_SHELL_REMOTE_DIR;./ssh-shell-runner.sh $args" > ./stdout
+    ret=`cat ./stdout | grep "EXITCODE=" | awk -F= '{printf("%d",$2)}'`
     for a in $filelist
     do
         ssh $SSH_SHELL_REMOTE_USER@$SSH_SHELL_REMOTE_HOST "cd $SSH_SHELL_REMOTE_DIR;rm $a"
     done
-    cat /tmp/stdout
-    rm -f /tmp/stdout
+    # remove the EXITCODE from the stdout before returning it so that exact output matching will be fine
+    cat ./stdout | sed 's/^EXITCODE=[0-9][0-9]*$//g' > ./stdout_clean
+    cat ./stdout_clean
+    rm -f ./stdout ./stdout_clean
     exit $ret
 fi
new file mode 100644
--- /dev/null
+++ b/build/buildbot/slaves/linux-mips-deep/buildbot.tac
@@ -0,0 +1,54 @@
+#  ***** BEGIN LICENSE BLOCK *****
+#  Version: MPL 1.1/GPL 2.0/LGPL 2.1
+# 
+#  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 [Open Source Virtual Machine.].
+# 
+#  The Initial Developer of the Original Code is
+#  Adobe System Incorporated.
+#  Portions created by the Initial Developer are Copyright (C) 2010
+#  the Initial Developer. All Rights Reserved.
+# 
+#  Contributor(s):
+#    Adobe AS3 Team
+# 
+#  Alternatively, the contents of this file may be used under the terms of
+#  either the GNU General Public License Version 2 or later (the "GPL"), or
+#  the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+#  in which case the provisions of the GPL or the LGPL are applicable instead
+#  of those above. If you wish to allow use of your version of this file only
+#  under the terms of either the GPL or the LGPL, and not to allow others to
+#  use your version of this file under the terms of the MPL, indicate your
+#  decision by deleting the provisions above and replace them with the notice
+#  and other provisions required by the GPL or the LGPL. If you do not delete
+#  the provisions above, a recipient may use your version of this file under
+#  the terms of any one of the MPL, the GPL or the LGPL.
+# 
+#  ***** END LICENSE BLOCK ****
+
+from twisted.application import service
+from buildbot.slave.bot import BuildSlave
+
+basedir = r'/home/build/buildbot/tamarin-redux/linux-mips-deep'
+host = '10.171.22.12'
+port = 9750
+slavename = 'asteamlin1-mips-deep'
+passwd = 'asteam'
+keepalive = 600
+usepty = 1
+umask = None
+
+application = service.Application('buildslave')
+s = BuildSlave(host, port, slavename, passwd, basedir, keepalive, usepty,
+               umask=umask)
+s.setServiceParent(application)
+
new file mode 100755
--- /dev/null
+++ b/build/buildbot/slaves/linux-mips-deep/scripts/environment.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+#  ***** BEGIN LICENSE BLOCK *****
+#  Version: MPL 1.1/GPL 2.0/LGPL 2.1
+# 
+#  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 [Open Source Virtual Machine.].
+# 
+#  The Initial Developer of the Original Code is
+#  Adobe System Incorporated.
+#  Portions created by the Initial Developer are Copyright (C) 2010
+#  the Initial Developer. All Rights Reserved.
+# 
+#  Contributor(s):
+#    Adobe AS3 Team
+# 
+#  Alternatively, the contents of this file may be used under the terms of
+#  either the GNU General Public License Version 2 or later (the "GPL"), or
+#  the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+#  in which case the provisions of the GPL or the LGPL are applicable instead
+#  of those above. If you wish to allow use of your version of this file only
+#  under the terms of either the GPL or the LGPL, and not to allow others to
+#  use your version of this file under the terms of the MPL, indicate your
+#  decision by deleting the provisions above and replace them with the notice
+#  and other provisions required by the GPL or the LGPL. If you do not delete
+#  the provisions above, a recipient may use your version of this file under
+#  the terms of any one of the MPL, the GPL or the LGPL.
+# 
+#  ***** END LICENSE BLOCK ****
+(set -o igncr) 2>/dev/null && set -o igncr; # comment is needed
+
+##
+# Set any variables that my be needed higher up the chain
+##
+export shell_extension=
+
+##
+# Bring in the BRANCH environment variables
+##
+. ../all/environment.sh
+
+export platform=linux
+
+export shell_release=avmshell_mips
+export shell_debug=avmshell_mips_d
+
+## Used by make in the build scripts
+export make_opt="-j2"
+
+# Override this, default is avmshell* and since this slave runs on a machine
+# with other slaves, the process cleaner /can/ find avmshell processes, 
+# BUT they will NEVER belong to this slave since the shell is run on a device
+# not on the host machine. Reset this to something that will never be found/killed
+export proc_names="fake_never_find_me"
+
+export SSH_SHELL_REMOTE_HOST=asteammips2
+export SSH_SHELL_REMOTE_USER=root
+export SSH_SHELL_REMOTE_DIR=/root/app
--- a/test/acceptance/testconfig.txt
+++ b/test/acceptance/testconfig.txt
@@ -173,29 +173,29 @@ ecma3/TypeConversion/e9_3_1_1, arm-winmo
 # Android
 ####################
 regress/bug_515935 , arm-android.*, skip, https://bugzilla.mozilla.org/show_bug.cgi?id=547282
 
 ####################
 # ARM
 ####################
 # do not use wildcard match (.*) at end, use (?<!-deep) so -deep ending will not match, want it to run in -deep phase
-ecma3/Unicode/u5000_CJKUnifiedIdeographs , arm-.*(?<!-deep)$ , skip , test runs too slowly
-ecma3/Unicode/u6000_CJKUnifiedIdeographs , arm-.*(?<!-deep)$ , skip , test runs too slowly
-ecma3/Unicode/u7000_CJKUnifiedIdeographs , arm-.*(?<!-deep)$ , skip , test runs too slowly
-ecma3/Unicode/u8000_CJKUnifiedIdeographs , arm-.*(?<!-deep)$ , skip , test runs too slowly
-ecma3/Unicode/u9000_CJKUnifiedIdeographs , arm-.*(?<!-deep)$ , skip , test runs too slowly
-ecma3/Unicode/uE000_PrivateUseArea , arm-.*(?<!-deep)$ , skip , test runs too slowly
-ecma3/Unicode/u3400_CJKUnifiedIdeographsExtensionA , arm-.*(?<!-deep)$ , skip , test runs too slowly
-ecma3/Unicode/uAC00_HangulSyllables , arm-.*(?<!-deep)$ , skip , test runs too slowly
-ecma3/Unicode/uA000_YiSyllables, arm-.*(?<!-deep)$ , skip, tests run too slowly on winmo
+ecma3/Unicode/u5000_CJKUnifiedIdeographs , (arm|mips)-.*(?<!-deep)$ , skip , test runs too slowly
+ecma3/Unicode/u6000_CJKUnifiedIdeographs , (arm|mips)-.*(?<!-deep)$ , skip , test runs too slowly
+ecma3/Unicode/u7000_CJKUnifiedIdeographs , (arm|mips)-.*(?<!-deep)$ , skip , test runs too slowly
+ecma3/Unicode/u8000_CJKUnifiedIdeographs , (arm|mips)-.*(?<!-deep)$ , skip , test runs too slowly
+ecma3/Unicode/u9000_CJKUnifiedIdeographs , (arm|mips)-.*(?<!-deep)$ , skip , test runs too slowly
+ecma3/Unicode/uE000_PrivateUseArea , (arm|mips)-.*(?<!-deep)$ , skip , test runs too slowly
+ecma3/Unicode/u3400_CJKUnifiedIdeographsExtensionA , (arm|mips)-.*(?<!-deep)$ , skip , test runs too slowly
+ecma3/Unicode/uAC00_HangulSyllables , (arm|mips)-.*(?<!-deep)$ , skip , test runs too slowly
+ecma3/Unicode/uA000_YiSyllables, (arm|mips)-.*(?<!-deep)$ , skip, tests run too slowly on winmo
 
-mops/mops , arm-.*(?<!-deep)$ , skip , test runs too slowly
+mops/mops , (arm|mips)-.*(?<!-deep)$ , skip , test runs too slowly
 
-regress/bug_515935 , arm-lnx.* , skip , bug https://bugzilla.mozilla.org/show_bug.cgi?id=547282
+regress/bug_515935 , (arm|mips)-lnx.* , skip , bug https://bugzilla.mozilla.org/show_bug.cgi?id=547282
 
 
 
 ####################
 # Windows Mobile Emulator
 ####################
 # emulator is not using DST by default
 # do not use wildcard match (.*) at end, fully specify matches so -deep ending will not match
@@ -393,30 +393,30 @@ spidermonkey/js1_5/Regress/regress-25289
 spidermonkey/js1_5/Regress/regress-271716-n, .*, skip, takes too long to run - tries to crash by doing while (1) a=new Array(a) - possibly run in deep?
 
 spidermonkey/js1_5/Regress/regress-274035:Array.prototype.(concat|splice).*, ^((?!diff).)*$, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=551032
 
 spidermonkey/js1_5/Regress/regress-280769-(4|5), ^((?!diff).)*$, expectedfail, Needs further investigation into what test is trying to do
 
 spidermonkey/js1_5/Regress/regress-438415-02, ^((?!diff).)*$, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=551202
 spidermonkey/js1_5/Regress/regress-58116:^.*Section (3|4).*, x64-lnx.*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=551227
-spidermonkey/js1_5/Regress/regress-58116:^.*Section (3|4|6).*, .*(mac|x86-lnx|arm-lnx|sparc-sol).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=551227
+spidermonkey/js1_5/Regress/regress-58116:^.*Section (3|4|6).*, .*(mac|x86-lnx|arm-lnx|mips-lnx|sparc-sol).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=551227
 spidermonkey/js1_5/Regress/regress-58116, .*-diff, skip, skip in diff testing
 spidermonkey/js1_5/Regress/regress-261887, .*-diff, skip, skip in diff testing as output can vary somewhat
 
 spidermonkey/js1_5/Scope/regress-185485:Section (2|5), ^((?!diff).)*$, expectedfail, https://bugs.adobe.com/jira/browse/ASC-4026
 spidermonkey/js1_5/Scope/scope-004:Section (6|7).*, ^((?!diff).)*$, expectedfail, https://bugs.adobe.com/jira/browse/ASC-4027
 
 # spidermonkey wordcode issues
 spidermonkey/js1_5/Regress/regress-329383:.*atan2\(-0.*, .*(wordcode|Ojit|jitordie).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=551587
 spidermonkey/js1_5/Regress/regress-329383:.*1/-0.*, .*(wordcode|Ojit|jitordie).*, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=551587
 
-spidermonkey/js1_5/Array/regress-157652, arm.*, skip, test runs out of memory on devices
-spidermonkey/js1_5/Function/regress-338121-.*, arm.*, skip, test runs out of memory on devices
-spidermonkey/js1_5/Function/regress-338001, arm.*, skip, test runs out of memory on devices
+spidermonkey/js1_5/Array/regress-157652, (arm|mips).*, skip, test runs out of memory on devices
+spidermonkey/js1_5/Function/regress-338121-.*, (arm|mips).*, skip, test runs out of memory on devices
+spidermonkey/js1_5/Function/regress-338001, (arm|mips).*, skip, test runs out of memory on devices
 
 spidermonkey/js1_5/Regress/regress-98901, .*, skip, https://bugs.adobe.com/jira/browse/ASC-4041
 
 ### Spidermonkey JS1_6 ###
 spidermonkey/js1_6/Array/regress-290592:.*length, ^((?!diff).)*$, expectedfail, related to https://bugzilla.mozilla.org/show_bug.cgi?id=551032
 spidermonkey/js1_6/Array/regress-290592:(Array.forEach.*(mutate|on sparse array)|sparsestrings: every.*), ^((?!diff).)*$, expectedfail, https://bugzilla.mozilla.org/show_bug.cgi?id=553088
 spidermonkey/js1_6/Array/regress-304828, .*, skip, Array methods on String not supported