Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

First iteration of a new eideticker superproject

Instead of just creating a python module for video capture, we'll include my
branch of talos as a submodule and use it directly. This should make setup
and prototyping faster.
the eideticker
  • Loading branch information...
commit 526facec0589df71dcc96198f7e6108b210b783b 1 parent 580d435
@wlach wlach authored
Showing with 215 additions and 47 deletions.
  1. +16 −4 .gitignore
  2. +3 −0  .gitmodules
  3. +20 −40 README.md
  4. +46 −0 bin/run-talos.sh
  5. +62 −0 bin/setup-talos.sh
  6. +64 −0 bootstrap.sh
  7. 0  downloads/.gitignore
  8. +1 −0  src/talos
  9. +3 −3 { → src/videocapture}/setup.py
  10. 0  {eideticker → src/videocapture/videocapture}/__init__.py
  11. 0  {eideticker → src/videocapture/videocapture}/controller.py
  12. 0  {eideticker → src/videocapture/videocapture}/decklink/Capture.cpp
  13. 0  {eideticker → src/videocapture/videocapture}/decklink/Capture.h
  14. 0  {eideticker → src/videocapture/videocapture}/decklink/Makefile
  15. 0  {eideticker → src/videocapture/videocapture}/decklink/decklink-convert.sh
  16. 0  {eideticker → src/videocapture/videocapture}/decklink/sdk/DeckLinkAPI.h
  17. 0  {eideticker → src/videocapture/videocapture}/decklink/sdk/DeckLinkAPIDispatch.cpp
  18. 0  {eideticker → src/videocapture/videocapture}/decklink/sdk/DeckLinkAPIDispatch_v7_6.cpp
  19. 0  {eideticker → src/videocapture/videocapture}/decklink/sdk/DeckLinkAPIVersion.h
  20. 0  {eideticker → src/videocapture/videocapture}/decklink/sdk/DeckLinkAPI_v7_1.h
  21. 0  {eideticker → src/videocapture/videocapture}/decklink/sdk/DeckLinkAPI_v7_3.h
  22. 0  {eideticker → src/videocapture/videocapture}/decklink/sdk/DeckLinkAPI_v7_6.h
  23. 0  {eideticker → src/videocapture/videocapture}/decklink/sdk/DeckLinkAPI_v7_9.h
  24. 0  {eideticker → src/videocapture/videocapture}/decklink/sdk/LinuxCOM.h
  25. 0  {eideticker → src/videocapture/videocapture}/server.py
View
20 .gitignore
@@ -1,5 +1,17 @@
-*~
*.pyc
-eideticker/decklink/decklink-capture
-build/*
-eideticker.egg-info/
+*~
+bin/activate
+bin/activate_this.py
+bin/decklink-capture
+bin/decklink-convert.sh
+bin/easy_install
+bin/easy_install-2.7
+bin/eideticker-server
+bin/pip
+bin/python
+downloads/mobile_tp4.zip
+include/
+lib/
+src/videocapture/build/*
+src/videocapture/videocapture.egg-info/
+src/videocapture/videocapture/decklink/decklink-capture
View
3  .gitmodules
@@ -0,0 +1,3 @@
+[submodule "src/talos"]
+ path = src/talos
+ url = git://github.com/wlach/talos.git
View
60 README.md
@@ -2,10 +2,8 @@ Project Eideticker
==================
Project Eideticker is an automated test harness that captures and analyzes
-browser output.
-
-Capture
--------
+browser output (currently only on Fennec on Android, but support for other
+platforms is planned).
### Requirements
@@ -19,48 +17,30 @@ Capture
### Installation
-Run `make` in the `capture/decklink/` directory to compile the C++ capture
-app.
-
+Run `bootstrap.sh` in the root directory to set everything up.
### Usage
-Run `./controller.py <port>` from within the `capture/` directory. The default
-port is 8888.
-
-The capture device is controlled through a web interface. These command paths
-are support:
-
-* `/start/`
-
- Start recording.
-
-* `/stop/`
-
- Stop recording and run the conversion script on the raw output.
-
-* `/status/`
-
- Indicates if a job is running, and, if so, the name of the capture.
-
-* `/captures/`
-
- Returns a JSON dictionary of the currently stored captures along with URLs
- to the individual data files (raw video, avi, png archive).
-
-* `/captures/<timestamp>/`
+Eideticker is currently only tested with the Galaxy S-2 phone, running
+Android 2.2 and rooted. Assuming this is your configuration, you should be
+able to get Eideticker running by install SUTAgent on your phone and issuing
+the following commands:
- Returns a JSON dictionary of the URLs to the individual data files for the
- given capture.
+ ./bin/setup-talos.sh <ip address of phone> \
+ <address of a checkout of talos on your web server> \
+ <name of fennec application to test>
-* `/captures/<timestamp>/<filename>`
+For example, my workstation is on 192.168.1.2, I've bindmounted talos's
+directory to a subdirectory on my workstation, I've built a custom version
+of fennec with the name org.mozilla.fennec_wlach, and my phone has an ip
+address of 192.168.1.4. I'd thus run setup-talos.sh as follows:
- Access the raw video, avi, or png archive of the given capture.
+ ./bin/setup-talos.sh 192.168.1.4 192.168.1.2/talos org.mozilla.fennec_wlach
+Once you've configured talos, you can run it with a single command:
-### To Do
+ ./bin/run-talos.sh
-* More configuration options (command line and/or config file).
-* Packaging.
-* Logging.
-* Verify if the Capture program has been compiled.
+You should then have a bunch of capture data stored in `src/talos/captures`.
+Currently we just run the ts test (not very interesting), more useful tests
+planned!
View
46 bin/run-talos.sh
@@ -0,0 +1,46 @@
+#!/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 Mozilla Eideticker.
+#
+# The Initial Developer of the Original Code is
+# Mozilla foundation
+# Portions created by the Initial Developer are Copyright (C) 2011
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+# William Lachance <wlachance@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 *****
+
+set -e
+
+export PATH=$(dirname $0):$PATH
+
+TALOS_DIR=$(dirname $0)/../src/talos
+
+cd $TALOS_DIR && python run_tests.py eideticker.config
View
62 bin/setup-talos.sh
@@ -0,0 +1,62 @@
+#!/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 Mozilla Eideticker.
+#
+# The Initial Developer of the Original Code is
+# Mozilla foundation
+# Portions created by the Initial Developer are Copyright (C) 2011
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+# William Lachance <wlachance@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 *****
+
+set -e
+
+export PATH=$(dirname $0):$PATH
+
+TALOS_DIR=$(dirname $0)/../src/talos
+
+if [ $# -ne 3 ]
+then
+ echo "Usage: `basename $0` <device ip> <webserver path> <fennec appname>"
+ exit 1
+fi
+
+DEVICE_IP=$1
+WEBSERVER_ADDRESS=$2
+FENNEC_APP=$3
+
+cd $TALOS_DIR && python remotePerfConfigurator.py -v -e $FENNEC_APP \
+ --activeTests ts --sampleConfig remote-videocapture.config --noChrome \
+ --resultsServer ' ' --resultsLink ' ' \
+ --videoCapture \
+ --remoteDevice=$DEVICE_IP \
+ --webServer $WEBSERVER_ADDRESS \
+ --output eideticker.config
View
64 bootstrap.sh
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+# ***** 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 the Mozilla GoFaster Dashboard.
+#
+# The Initial Developer of the Original Code is
+# Mozilla foundation
+# Portions created by the Initial Developer are Copyright (C) 2011
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+# William Lachance <wlachance@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 *****
+
+PYPI_DEPS=" \
+pyyaml \
+"
+
+# Check out git submodules
+git submodule init
+git submodule update
+
+# Create virtualenv
+virtualenv .
+./bin/easy_install $PYPI_DEPS
+
+# Install videocapture and jsbridge python eggs (and their deps)
+./bin/easy_install src/videocapture
+
+# Install extensions required by mobile talos
+TALOS_EXTENSION_DIR=src/talos/mobile_profile/extensions
+hg clone http://hg.mozilla.org/build/pageloader \
+ $TALOS_EXTENSION_DIR/pageloader@mozilla.org
+hg clone http://hg.mozilla.org/users/tglek_mozilla.com/fennecmark \
+ $TALOS_EXTENSION_DIR/bench@taras.glek
+
+# Install mobile tp4 pageset
+wget http://people.mozilla.org/~jmaher/mobile_tp4.zip -O downloads/mobile_tp4.zip
+unzip -o downloads/mobile_tp4.zip -d src/talos/page_load_test
View
0  downloads/.gitignore
No changes.
1  src/talos
@@ -0,0 +1 @@
+Subproject commit 9854116dc995b64ac9ea986a8e6db8b046b91519
View
6 setup.py → src/videocapture/setup.py
@@ -1,10 +1,10 @@
from setuptools import setup, find_packages
setup(
- name = "eideticker",
+ name = "videocapture",
version = "0.1.0",
packages = find_packages(),
- scripts = [ "eideticker/decklink/decklink-capture",
- "eideticker/decklink/decklink-convert.sh" ],
+ scripts = [ "videocapture/decklink/decklink-capture",
+ "videocapture/decklink/decklink-convert.sh" ],
entry_points = {
"console_scripts": ["eideticker-server = eideticker.server:main"]
}
View
0  eideticker/__init__.py → src/videocapture/videocapture/__init__.py
File renamed without changes
View
0  eideticker/controller.py → src/videocapture/videocapture/controller.py
File renamed without changes
View
0  eideticker/decklink/Capture.cpp → ...capture/videocapture/decklink/Capture.cpp
File renamed without changes
View
0  eideticker/decklink/Capture.h → ...eocapture/videocapture/decklink/Capture.h
File renamed without changes
View
0  eideticker/decklink/Makefile → ...deocapture/videocapture/decklink/Makefile
File renamed without changes
View
0  eideticker/decklink/decklink-convert.sh → ...videocapture/decklink/decklink-convert.sh
File renamed without changes
View
0  eideticker/decklink/sdk/DeckLinkAPI.h → ...e/videocapture/decklink/sdk/DeckLinkAPI.h
File renamed without changes
View
0  ...cker/decklink/sdk/DeckLinkAPIDispatch.cpp → ...ture/decklink/sdk/DeckLinkAPIDispatch.cpp
File renamed without changes
View
0  ...decklink/sdk/DeckLinkAPIDispatch_v7_6.cpp → ...decklink/sdk/DeckLinkAPIDispatch_v7_6.cpp
File renamed without changes
View
0  eideticker/decklink/sdk/DeckLinkAPIVersion.h → ...capture/decklink/sdk/DeckLinkAPIVersion.h
File renamed without changes
View
0  eideticker/decklink/sdk/DeckLinkAPI_v7_1.h → ...eocapture/decklink/sdk/DeckLinkAPI_v7_1.h
File renamed without changes
View
0  eideticker/decklink/sdk/DeckLinkAPI_v7_3.h → ...eocapture/decklink/sdk/DeckLinkAPI_v7_3.h
File renamed without changes
View
0  eideticker/decklink/sdk/DeckLinkAPI_v7_6.h → ...eocapture/decklink/sdk/DeckLinkAPI_v7_6.h
File renamed without changes
View
0  eideticker/decklink/sdk/DeckLinkAPI_v7_9.h → ...eocapture/decklink/sdk/DeckLinkAPI_v7_9.h
File renamed without changes
View
0  eideticker/decklink/sdk/LinuxCOM.h → ...ture/videocapture/decklink/sdk/LinuxCOM.h
File renamed without changes
View
0  eideticker/server.py → src/videocapture/videocapture/server.py
File renamed without changes
Please sign in to comment.
Something went wrong with that request. Please try again.