bug 395819 (again, forgot to add/remove): organize an update the config files in buildbot-configs/testing/talos/perfmaster, r+=anodelman,robcee, patch=bhearsum

git-svn-id: svn://10.0.0.236/trunk@236731 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bhearsum%mozilla.com
2007-09-26 22:55:15 +00:00
parent ed4f5c4f67
commit 26f1ef7232
12 changed files with 123 additions and 540 deletions

View File

@@ -1,55 +0,0 @@
# ***** 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 standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
# Alice Nodelman <anodelman@mozilla.com>
#
# 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 *****
"""A list of constants containing the paths to programs and files
needed by the performance testing scripts.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
"""The path to the file url to load when initializing/collecting information from the browser"""
INIT_URL = 'getInfo.html'
"""Dump results locally to csv"""
TO_CSV = 0
CSV_FILE = r'output/out'
"""URL for the results server"""
TO_GRAPH_SERVER = 1
RESULTS_SERVER = 'graphs-stage.mozilla.org'
RESULTS_LINK = '/bulk.cgi'
"""Enable/disable debugging output"""
DEBUG = 0

View File

@@ -1,97 +0,0 @@
# ***** 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 standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
# Alice Nodelman <anodelman@mozilla.com>
#
# 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 *****
"""A list of constants containing the paths to programs and files
needed by the performance testing scripts.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
BROWSER_HEIGHT = 768
BROWSER_WIDTH = 1024
"""For some reason, can only get output from dump() in Firefox if
it's run through cygwin bash. So here's the path to cygwin.
"""
CYGWIN = r''
"""The tinderbox scripts run sync between Ts runs, so we do, too."""
SYNC = r'/bin/sync'
"""The path to the base profile directory to use for testing. For the page
load test to work, this profile should have its hostperm.1 file set to allow
urls with scheme:file to open in new windows, and the preference to open
new windows in a tab should be off.
"""
BASE_PROFILE_DIR = r'/Users/mozqa/talos/base_profile/'
"""The path to the file url to load when initializing a new profile"""
INIT_URL = 'file:///Users/mozqa/talos/initialize.html'
"""The path to the file url to load when collecting information from the browser"""
INFO_URL = 'file:///Users/mozqa/talos/getInfo.html'
"""The path to the file url to load for startup test (Ts)"""
TS_URL = 'file:///Users/mozqa/talos/startup_test/startup_test.html?begin='
"""Number of times to run startup test (Ts)"""
TS_NUM_RUNS = 20
"""The path to the file url to load for page load test (Tp)"""
TP_URL = 'http://localhost/page_load_test/framecycler.html'
"""Number of times the page load test (Tp) loads each page in the test."""
TP_NUM_CYCLES = 5
"""Resolution of counter sample data for page load test (Tp), in seconds
(For example, if TP_RESOLUTION=1, sample counters every 1 second"""
TP_RESOLUTION = 1
"""Run page load test.
For possible values of counters argument on Windows, see
http://technet2.microsoft.com/WindowsServer/en/Library/86b5d116-6fb3-427b-af8c-9077162125fe1033.mspx?mfr=true
Possible values on Linux and Mac:
'Private Bytes', '% Processor Time', 'RSS'
"""
COUNTERS = ['Private Bytes', 'RSS', '% Processor Time']
"""URL for the results server"""
RESULTS_SERVER = 'graphs-stage.mozilla.org'
RESULTS_LINK = '/bulk.cgi'
"""Enable/disable debugging output"""
DEBUG = 1

View File

@@ -1,54 +0,0 @@
# ***** 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 standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
# Alice Nodelman <anodelman@mozilla.com>
#
# 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 *****
"""A list of constants containing the paths to programs and files
needed by the performance testing scripts.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
"""The path to the file url to load when initializing a new profile"""
INIT_URL = 'getInfo.html'
TO_CSV = 0
CSV_FILE = r'out.csv'
TO_GRAPH_SERVER = 1
RESULTS_SERVER = 'graphs-stage.mozilla.org'
RESULTS_LINK = '/bulk.cgi'
DEBUG = 0

View File

@@ -1,97 +0,0 @@
# ***** 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 standalone Firefox Windows performance test.
#
# The Initial Developer of the Original Code is Google Inc.
# Portions created by the Initial Developer are Copyright (C) 2006
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Annie Sullivan <annie.sullivan@gmail.com> (original author)
# Alice Nodelman <anodelman@mozilla.com>
#
# 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 *****
"""A list of constants containing the paths to programs and files
needed by the performance testing scripts.
"""
__author__ = 'annie.sullivan@gmail.com (Annie Sullivan)'
BROWSER_HEIGHT = 768
BROWSER_WIDTH = 1024
"""For some reason, can only get output from dump() in Firefox if
it's run through cygwin bash. So here's the path to cygwin.
"""
CYGWIN = r'c:\cygwin\bin\bash.exe -c'
"""The tinderbox scripts run sync between Ts runs, so we do, too."""
SYNC = r'c:\cygwin\bin\sync'
"""The path to the base profile directory to use for testing. For the page
load test to work, this profile should have its hostperm.1 file set to allow
urls with scheme:file to open in new windows, and the preference to open
new windows in a tab should be off.
"""
BASE_PROFILE_DIR = r'base_profile'
"""The path to the file url to load when initializing a new profile"""
INIT_URL = 'initialize.html'
"""The path to the file url to load when collecting information from the browser"""
INFO_URL = 'getInfo.html'
"""The path to the file url to load for startup test (Ts)"""
TS_URL = 'startup_test/startup_test.html?begin='
"""Number of times to run startup test (Ts)"""
TS_NUM_RUNS = 20
"""The path to the file url to load for page load test (Tp)"""
TP_URL = 'http://localhost/page_load_test/framecycler.html'
"""Number of times the page load test (Tp) loads each page in the test."""
TP_NUM_CYCLES = 5
"""Resolution of counter sample data for page load test (Tp), in seconds
(For example, if TP_RESOLUTION=1, sample counters every 1 second"""
TP_RESOLUTION = 1
"""Run page load test.
For possible values of counters argument on Windows, see
http://technet2.microsoft.com/WindowsServer/en/Library/86b5d116-6fb3-427b-af8c-9077162125fe1033.mspx?mfr=true
Possible values on Linux and Mac:
'Private Bytes', '% Processor Time', 'RSS'
"""
COUNTERS = ['Private Bytes', 'Working Set', '% Processor Time']
"""URL for the results server"""
RESULTS_SERVER = 'graphs-stage.mozilla.org'
RESULTS_LINK = '/bulk.cgi'
"""Enable/disable debugging output"""
DEBUG = 0

View File

@@ -1,8 +0,0 @@
#!/usr/bin/expect
spawn hdiutil attach $argv
expect {
"byte" {send "G"; exp_continue}
"Y/N" {send "Y\r"; exp_continue}
}

View File

@@ -1,23 +0,0 @@
#!/bin/bash
filename=$1
executablepath=$2
# answer license prompt
result=`expect hdiutil-expect.ex $filename`
# now get the volume data
#result=`hdiutil attach $filename`
disk=`echo $result | sed 's@.*\(/dev/[^ ]*\).*/dev.*/dev.*@\1@'`
# remove the carriage return inserted by expect
volume=`echo $result | sed "s|[^a-zA-Z0-9/]||g" | sed 's@.*\(/Volumes/.*\)@\1@'`
echo "disk=$disk"
echo "volume=$volume"
if [[ -z "$disk" || -z "$volume" ]]; then
echo "mounting disk image: $result"
fi
for app in $volume/*.app; do
cp -R $app $executablepath
done
hdiutil detach $disk

View File

@@ -3,14 +3,20 @@
# The title of the report
title: firefox_testing
#csv_file: 'out.csv'
results_server: 'graphs-stage.mozilla.org'
results_link: '/bulk.cgi'
# Path to Firefox to test
firefox: C:\mozilla\testing\performance\firefox\firefox.exe
firefox: firefox/firefox
branch: testbranch
buildid: testbuildid
profile_path: base_profile\
profile_path: base_profile
init_url: getInfo.html
# Preferences to set in the test (use "preferences : {}" for no prefs)
preferences :
@@ -37,7 +43,7 @@ preferences :
extensions : {}
#any directories whose contents need to be installed in the browser before running the tests
# this assumes that the directories themselves already exist in the firefox path
# this assumes that the directories themselves already exist in the firefox pat
dirs:
chrome : page_load_test/chrome
components : page_load_test/components
@@ -48,7 +54,7 @@ env :
# Tests to run
# url : (REQUIRED) url to load into the given firefox browser
# url_mod : (OPTIONAL) a bit of code to be evaled and added to the given url during each cycle of the test
# resolution: (REQUIRED) how long (in seconds) to pause between counter sampling
# resolution: (REQUIRED) how long (in seconds) to pause between counter samplig
# cycles : (REQUIRED) how many times to run the test
# counters : (REQUIRED) types of system activity to monitor during test run, can be empty
# For possible values of counters argument on Windows, see
@@ -60,22 +66,24 @@ env :
# to set up a new test it must have the correct configuration options and drop information in a standard format
# the format is seen in the regular expressions in ttest.py
# to see how the data passed from the browser is processed see send_to_graph and send_to_csv in run_tests.py
# to see how the data passed from the browser is processed see send_to_graph anisend_to_csv in run_tests.py
tests :
ts :
url : startup_test/startup_test.html?begin=
url_mod : str(int(time.time()*1000))
resolution : 1
cycles : 20
counters : []
tp:
url : '-tp page_load_test/manifest.txt -tpchrome -tpformat tinderbox -tpcycles 5'
resolution : 1
cycles : 1
counters : ['Working Set', 'Private Bytes', '% Processor Time']
# tp_js:
# url : '"http://localhost/page_load_test/framecycler.html?quit=1&cycles=5"'
cycles : 5
win_counters : []
unix_counters : []
# tp:
# url : '-tp page_load_test/manifest.txt -tpchrome -tpformat tinderbox -tpcycles 5'
# resolution : 1
# cycles : 1
# counters : ['Working Set', 'Private Bytes', '% Processor Time']
# win_counters : ['Working Set', 'Private Bytes', '% Processor Time']
# unix_counters : ['RSS', 'Private Bytes']
tp_js:
url : '"http://localhost/page_load_test/framecycler.html?quit=1&cycles=5"'
resolution : 1
cycles : 1
win_counters : ['Working Set', 'Private Bytes', '% Processor Time']
unix_counters: ['RSS', 'Private Bytes']

View File

@@ -1,48 +0,0 @@
# Sample Talos configuration file
# Filename will be appended to the timestamp in the report filename.
# Use letters and underscores only
filename: testfilename
# The title of the report
title: testtitle
# Name of profile to test
Test profile 1:
# Path to Firefox to test
firefox: C:\cygwin\tmp\test\firefox\firefox.exe
branch: testbranch
branchid: testbranchid
profile_path: base_profile/
# Preferences to set in the test (use "preferences : {}" for no prefs)
preferences :
browser.shell.checkDefaultBrowser : false
dom.allow_scripts_to_close_windows : true
dom.disable_open_during_load: false
browser.dom.window.dump.enabled: true
network.proxy.type : 1
network.proxy.http : localhost
network.proxy.http_port : 80
dom.disable_window_flip : true
dom.disable_window_move_resize : true
security.enable_java : false
extensions.checkCompatibility : false
extensions.update.notifyUser: false
capability.principal.codebase.p0.granted : UniversalPreferencesWrite UniversalXPConnect UniversalPreferencesRead
capability.principal.codebase.p0.id : file://
capability.principal.codebase.p1.granted : UniversalXPConnect
# Extensions to install in test (use "extensions: {}" for none)
# Need quotes around guid because of curly braces
# extensions :
# "{12345678-1234-1234-1234-abcd12345678}" : c:\path\to\unzipped\xpi
# foo@sample.com : c:\path\to\other\unzipped\xpi
extensions : {}
# Environment variables to set during test (use env: {} for none)
env :
NO_EM_RESTART : 1

View File

@@ -1,82 +0,0 @@
# Sample Talos configuration file
# The title of the report
title: firefox_testing
# Path to Firefox to test
firefox: C:\mozilla\testing\performance\firefox\firefox.exe
branch: testbranch
buildid: testbuildid
profile_path: base_profile/
# Preferences to set in the test (use "preferences : {}" for no prefs)
preferences :
browser.shell.checkDefaultBrowser : false
browser.warnOnQuit : false
dom.allow_scripts_to_close_windows : true
dom.disable_open_during_load: false
browser.dom.window.dump.enabled: true
network.proxy.type : 1
network.proxy.http : localhost
network.proxy.http_port : 80
dom.disable_window_flip : true
dom.disable_window_move_resize : true
security.enable_java : false
extensions.checkCompatibility : false
extensions.update.notifyUser: false
capability.principal.codebase.p0.granted : UniversalPreferencesWrite UniversalXPConnect UniversalPreferencesRead
capability.principal.codebase.p0.id : file://
capability.principal.codebase.p1.granted : UniversalXPConnect
# Extensions to install in test (use "extensions: {}" for none)
# Need quotes around guid because of curly braces
# extensions :
# "{12345678-1234-1234-1234-abcd12345678}" : c:\path\to\unzipped\xpi
# foo@sample.com : c:\path\to\other\unzipped\xpi
extensions : {}
#any directories whose contents need to be installed in the browser before running the tests
# this assumes that the directories themselves already exist in the firefox path
dirs:
chrome : page_load_test/chrome
components : page_load_test/components
# Environment variables to set during test (use env: {} for none)
env :
NO_EM_RESTART : 1
# Tests to run
# url : (REQUIRED) url to load into the given firefox browser
# url_mod : (OPTIONAL) a bit of code to be evaled and added to the given url during each cycle of the test
# resolution: (REQUIRED) how long (in seconds) to pause between counter sampling
# cycles : (REQUIRED) how many times to run the test
# counters : (REQUIRED) types of system activity to monitor during test run, can be empty
# For possible values of counters argument on Windows, see
# http://technet2.microsoft.com/WindowsServer/en/Library/86b5d116-6fb3-427b-af8c-9077162125fe1033.mspx?mfr=true
# Possible values on Linux and Mac:
# 'Private Bytes', 'RSS'
# to set up a new test it must have the correct configuration options and drop information in a standard format
# the format is seen in the regular expressions in ttest.py
# to see how the data passed from the browser is processed see send_to_graph and send_to_csv in run_tests.py
tests :
ts :
url : startup_test/startup_test.html?begin=
url_mod : str(int(time.time()*1000))
resolution : 1
cycles : 20
counters : []
tp:
url : '-tp page_load_test/manifest.txt -tpchrome -tpformat tinderbox -tpcycles 5'
resolution : 1
cycles : 1
counters : ['Working Set', 'Private Bytes', '% Processor Time']
# tp_js:
# url : '"http://localhost/page_load_test/framecycler.html?quit=1&cycles=5"'
# resolution : 1
# cycles : 1
# counters : ['Working Set', 'Private Bytes', '% Processor Time']

View File

@@ -3,8 +3,12 @@
# The title of the report
title: firefox_testing
#csv_file: 'out.csv'
results_server: 'graphs-stage.mozilla.org'
results_link: '/bulk.cgi'
# Path to Firefox to test
firefox: C:\mozilla\testing\performance\firefox\firefox.exe
firefox: firefox/firefox
branch: testbranch
@@ -12,6 +16,8 @@ buildid: testbuildid
profile_path: base_profile
init_url: getInfo.html
# Preferences to set in the test (use "preferences : {}" for no prefs)
preferences :
browser.shell.checkDefaultBrowser : false
@@ -50,7 +56,7 @@ env :
# url_mod : (OPTIONAL) a bit of code to be evaled and added to the given url during each cycle of the test
# resolution: (REQUIRED) how long (in seconds) to pause between counter sampling
# cycles : (REQUIRED) how many times to run the test
# counters : (REQUIRED) types of system activity to monitor during test run, can be empty
# counters : (REQUIRED) types of system activity to monitor during test run, an be empty
# For possible values of counters argument on Windows, see
# http://technet2.microsoft.com/WindowsServer/en/Library/86b5d116-6fb3-427b-af8c-9077162125fe1033.mspx?mfr=true
# Possible values on Linux and Mac:
@@ -60,22 +66,24 @@ env :
# to set up a new test it must have the correct configuration options and drop information in a standard format
# the format is seen in the regular expressions in ttest.py
# to see how the data passed from the browser is processed see send_to_graph and send_to_csv in run_tests.py
# to see how the data passed from the browser is processed see send_to_graph an send_to_csv in run_tests.py
tests :
ts :
url : startup_test/startup_test.html?begin=
url_mod : str(int(time.time()*1000))
resolution : 1
cycles : 20
counters : []
cycles : 5
win_counters : []
unix_counters : []
tp:
url : '-tp page_load_test/manifest.txt -tpchrome -tpformat tinderbox -tpcycles 5'
resolution : 1
cycles : 1
counters : ['RSS', 'Private Bytes']
win_counters : ['Working Set', 'Private Bytes', '% Processor Time']
unix_counters : ['RSS', 'Private Bytes']
# tp_js:
# url : '"http://localhost/page_load_test/framecycler.html?quit=1&cycles=5"'
# resolution : 1
# cycles : 1
# counters : ['Working Set', 'Private Bytes', '% Processor Time']
# win_counters : ['Working Set', 'Private Bytes', '% Processor Time']
# unix_counters: ['RSS', 'Private Bytes']

View File

@@ -1,52 +0,0 @@
#!/usr/bin/expect -f
#
# This Expect script was generated by autoexpect on Wed Aug 29 12:36:58 2007
# Expect and autoexpect were both written by Don Libes, NIST.
#
# Note that autoexpect does not guarantee a working script. It
# necessarily has to guess about certain things. Two reasons a script
# might fail are:
#
# 1) timing - A surprising number of programs (rn, ksh, zsh, telnet,
# etc.) and devices discard or ignore keystrokes that arrive "too
# quickly" after prompts. If you find your new script hanging up at
# one spot, try adding a short sleep just before the previous send.
# Setting "force_conservative" to 1 (see below) makes Expect do this
# automatically - pausing briefly before sending each character. This
# pacifies every program I know of. The -c flag makes the script do
# this in the first place. The -C flag allows you to define a
# character to toggle this mode off and on.
set force_conservative 0 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
#
# 2) differing output - Some programs produce different output each time
# they run. The "date" command is an obvious example. Another is
# ftp, if it produces throughput statistics at the end of a file
# transfer. If this causes a problem, delete these patterns or replace
# them with wildcards. An alternative is to use the -p flag (for
# "prompt") which makes Expect only look for the last line of output
# (i.e., the prompt). The -P flag allows you to define a character to
# toggle this mode off and on.
#
# Read the man page for more info.
#
# -Don
set timeout -1
spawn $env(SHELL)
match_max 100000
send -- " hdiutil attach -noautoopen -mountpoint ./mnt $argv \r"
expect -exact "Agree Y/N? "
send -- "Y\r"
send -- "exit\r"
expect eof

View File

@@ -0,0 +1,83 @@
# Generates the proper chrome/ and component/ directories that can be dropped
# into a profile to enable the pageloader
# Original Author: Alice Nodelman (anodelman@mozilla.com)
# Modified by: Ben Hearsum (bhearsum@mozilla.com)
import os
import sys
import zipfile
import shutil
import tempfile
# create the temp directory
tmp_dir = tempfile.mkdtemp()
pageloader_dir = os.path.join(tmp_dir, "pageloader")
# where the chrome/ and component/ directories will be put
working_dir = "."
chrome_dir = os.path.join(working_dir, 'chrome')
components_dir = os.path.join(working_dir, 'components')
# where the pageloader will be checked out from
cvsroot = ":pserver:anonymous@cvs.mozilla.org:/cvsroot"
module = "mozilla/layout/tools/pageloader"
def removedir(rdir):
if os.path.isdir(rdir):
for root, dirs, files in os.walk(rdir, topdown=False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
os.rmdir(os.path.join(root, name))
os.rmdir(rdir)
def zipdir(zip, zdir):
if os.path.isdir(zdir):
for root, dirs, files in os.walk(zdir, topdown=False):
for name in files:
zip.write(os.path.join(root, name), os.path.join(os.path.basename(zdir), name))
else:
zip.write(zdir)
# bail if the directories already exist
if os.path.exists(chrome_dir):
print "chrome/ directory exists, bailing out"
sys.exit(1)
if os.path.exists(components_dir):
print "components/ directory exists, bailing out"
sys.exit(1)
oldcwd = os.getcwd()
os.chdir(tmp_dir)
# exit if cvs throws an error
if os.system("cvs -d%s co -d pageloader %s" % (cvsroot, module)):
print "could not retrieve pageloader, bailing out"
sys.exit(1)
os.chdir(oldcwd)
#create the directory structure in the working_dir
os.mkdir(chrome_dir)
os.mkdir(os.path.join(chrome_dir, 'content'))
os.mkdir(components_dir)
#create the pageloader.manifest file
f = open(os.path.join(chrome_dir, 'pageloader.manifest'), 'w')
f.write('content pageloader jar:pageloader.jar!/content/\n')
f.close()
shutil.copy(os.path.join(pageloader_dir, 'pageloader.xul'), os.path.join(chrome_dir, 'content', 'pageloader.xul'))
shutil.copy(os.path.join(pageloader_dir, 'quit.js'), os.path.join(chrome_dir, 'content', 'quit.js'))
shutil.copy(os.path.join(pageloader_dir, 'pageloader.js'), os.path.join(chrome_dir, 'content', 'pageloader.js'))
shutil.copy(os.path.join(pageloader_dir, 'report.js'), os.path.join(chrome_dir, 'content', 'report.js'))
# create pageloader.jar
jar = zipfile.ZipFile(os.path.join(chrome_dir, 'pageloader.jar'), 'w')
zipdir(jar, os.path.join(chrome_dir, 'content'))
jar.close()
removedir(os.path.join(chrome_dir, 'content'))
shutil.copy(os.path.join(pageloader_dir, 'tp-cmdline.js'), os.path.join(components_dir, 'tp-cmdline.js'))
#get rid of the temporary directory
removedir(tmp_dir)