Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pr docker factory travis ci test #105

Open
wants to merge 948 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
948 commits
Select commit Hold shift + click to select a range
660e8dc
devices: debian_isc: refactor starting dhcp server with lock into fun…
mattsm Apr 3, 2019
39f078e
devices: base: convert get_interface_ip6addr to use ipaddress and def…
mattsm Apr 3, 2019
2aa6284
devices: debian_isc: conditionally start ipv6
mattsm Apr 3, 2019
885c63d
devices: base: small fix for get_interface_ip6addr
mattsm Apr 3, 2019
d58208f
devices: debian_isc: convert prov_nw_ipv6 into true network
mattsm Apr 3, 2019
000f38d
devices: debian: add support for getting ipv6 addr from DHCP
mattsm Apr 2, 2019
b193199
tests: lib: network_helper: add functions for validating ip addresses
mattsm Apr 3, 2019
c76021c
tests: rootfs_boot: check interfaces for right ipp adddress types
mattsm Apr 1, 2019
2ece655
tests: rootfs_boot: add TODO for iface checking logic
mattsm Apr 3, 2019
274a864
tests: lib: installers: update tarball url for jmeter
mattsm Apr 3, 2019
874f011
tests: lib: installers: update tarball url for jmeter
mattsm Apr 3, 2019
bb3e3bd
tests: rootfs_boot: disable mta ip checking all together for now
mattsm Apr 3, 2019
2ca6891
tests: lib: installer: fix jmeter PATH
mattsm Apr 4, 2019
c54939b
devices: debian_isc: convert ip address to object before comparison
mattsm Apr 4, 2019
90440a5
devices: debian: reorder start lan client
mattsm Apr 5, 2019
6ab9ee5
tests: jmeter: re-enable results, and make time configurable
mattsm Apr 5, 2019
7c16f57
tests: lib: common.py
sravichandran-contractor Apr 5, 2019
bcbbefa
devices : casa_cmts: Modified the grouping in get_ertr_ipv4()
sravichandran-contractor Apr 8, 2019
66801dd
devices: base: set_printk is wrapped in a try/except block
mgualco-contractor Apr 3, 2019
50b946f
lib: gui_helper: add select option by name for GUI
GerbenChenCBN Apr 3, 2019
6e90b09
devices: debian: drop startswith for args without options
mattsm Apr 11, 2019
00e758b
tests: iperf3: fix setting wan ipv6 address
mattsm Apr 11, 2019
c2086d4
devices: debian: set default ipv6 address to None
mattsm Apr 11, 2019
ad7f376
devices: base: Added prefer_ipv4(self, pref=True)
mgualco-contractor Apr 15, 2019
f5c7d01
devices: debian_isc: add basic ISC config items
mattsm Apr 4, 2019
a0e9962
tests: jmeter: rework how jmeter is run and what files are saved
mattsm Apr 17, 2019
2db3510
devices: debian: force apt to ipv4 for now
mattsm Apr 17, 2019
3ce4196
tests: jmeter: shorten expect_exact since it's cut at 80 chars
mattsm Apr 17, 2019
780bd7c
tests: jmeter: explictly strip r and n
mattsm Apr 17, 2019
7cdfc1a
tests: jmeter: fix another over 80 char line issue
mattsm Apr 17, 2019
7dea315
lib: wifi: Added "self" argu for func in wifi_stub() class
kvetrivel-contractor Apr 17, 2019
1c0f15c
tests: lib: common.py: Modified snmp_mib_get to remove ""
Apr 17, 2019
1012b82
devices: debian.py: fix ipv6 addr with DHCP check
Apr 18, 2019
35ac800
devices: debian: fix logic for setting default gwv6 address
mattsm Apr 16, 2019
1d97a22
devices: debian_isc: bump up cm, erouter, mta v6 subnets to next 61 p…
mattsm Apr 16, 2019
3720a0a
devices: debian_isc: remove mta for ipv6 (doesn't really exist)
mattsm Apr 16, 2019
48fe0ff
devices: debian_isc: add classes for CM and erouter
mattsm Apr 17, 2019
3245235
tests: nmap: convert lan test to use touch()
mattsm Apr 18, 2019
1013932
tests: nmap: remove random garbage in previous commit
mattsm Apr 19, 2019
66e5466
bft-node: Dockerfile: added 'less' to package list
mgualco-contractor Apr 23, 2019
8ca9541
tests: jmeter: delete previous run if present
mattsm Apr 24, 2019
9a23fb8
devices: axiros_acs: add getcurrent which syncs the set of values in …
mattsm Apr 22, 2019
fe37d4c
devices: debian: fixed a login issue for non root users
mgualco-contractor Apr 24, 2019
ac690dc
tests: __init__: add exception on incompatible filename
mattsm Apr 4, 2019
818a5a7
devices: owrt: check that mpstat is still running
mattsm Apr 25, 2019
2862799
devices: owrt: if we fail to kill mpstat, reset console
mattsm Apr 25, 2019
1a0b642
config: set default_display_backend_port to 0
mgualco-contractor Apr 26, 2019
6a033e5
devices: __init__: allow devices to be python modules
mattsm Apr 26, 2019
d880560
devices: debian: only start ipv6 dhcp if we lack an ip
mattsm Apr 23, 2019
3ac1bd9
bft-node: Dockerfile: added bind a process to an IP
mgualco-contractor Apr 28, 2019
0b95e14
fix tests: lib: network_helper
Apr 29, 2019
3c952c9
lib: gui_helper: add get_text_value_by_xpath
GerbenChenCBN Apr 29, 2019
76cf914
lib: gui_helper: add select_option_by_xpath function
GerbenChenCBN May 3, 2019
5d8b603
devices: casa_cmts.py: added clear_cm_reset() to reset the CM from CMTS
May 1, 2019
fa13b9f
devices: casa_cmts: updated check_online function
premandfriends May 3, 2019
95266d9
tests: lib: common: modified snmp_mib_get for additional space
premandfriends May 2, 2019
395c587
devices: ssh_connection: expects yes/no when connecting
mgualco-contractor May 5, 2019
009716a
tests: rootfs: don't start dhcp on wan device
mattsm May 6, 2019
640e5ab
devices: debian: update usage of gw, gw_ng, and gw_prefixlen
mattsm May 6, 2019
89ba45d
devices: debian_isc: bypass ipv6 dhcp if not configured
mattsm May 6, 2019
52f9c80
devices: debian: force ping to use ipv4 since we install pkgs over ipv4
mattsm May 6, 2019
4ff4fba
devices: debian_isc: allow no ipv6
mattsm May 6, 2019
3e1f87b
tests: rootfs: change pathway to trigger provisioning
mattsm May 6, 2019
70b5358
tests: linux_boot: add more debug details if test fails
mattsm Apr 30, 2019
e33fb00
devices: debian_isc : sip_fqdn variable added
nsevvel May 8, 2019
597d971
tests: lib: wifi: Added wifi_client_stub()
sravichandran-contractor May 8, 2019
5086d18
Revert "requirements: lock down urllib"
mattsm May 7, 2019
e4be8b9
requirements.txt: remove version dep for pexpect
mattsm May 7, 2019
938306c
tests: lib: common: modified snmp_mib_get
MartinCBN May 6, 2019
3c28747
devices: debian: Enhanced link_up() and set_link_state()
sravichandran-contractor Apr 30, 2019
15e778d
devices: debian_wifi: Enhanced the wifi functions to execute in sudo …
sravichandran-contractor May 6, 2019
7bf98c3
tests: lib: network_testing: Added generic functions for network testing
sravichandran-contractor May 6, 2019
d5a0931
requirements.txt: Added countrycode
sravichandran-contractor May 9, 2019
0ebc778
lib: wifi: Documented "apply_changes_no_delay" variable in wifi_stub()
kvetrivel-contractor May 15, 2019
e52d6d0
lib: wifi: Changed the var value to true for "apply_changes_no_delay"
kvetrivel-contractor May 16, 2019
d4b3d08
devices: debian_wifi: Modified disable_and_enable_wifi and wifi_clien…
sravichandran-contractor May 13, 2019
fa4e806
deploy-boardfarm-nodes: added voice container func
May 17, 2019
b803a4d
devices: debian_isc: add ipv6 provisioning config items
mattsm May 8, 2019
dbed81b
devices: windows_telnet.py: get_interface_ip6addr()
ppalaniappan May 14, 2019
e3da6c6
devices: windows_telnet: fix bad python syntax
mattsm May 21, 2019
89f6cb2
bft-node: Dockerfile: Added iw, wpasupplicant, ntpdate
May 17, 2019
544da7e
devices: debian_isc: handle case where ope and cm subnet are the same
mattsm May 20, 2019
fbce69e
tests: lib: docsis: delete file before running encoding step
mattsm May 20, 2019
76320d5
tests: lib: docsis: add support for a board providing it's own mib de…
mattsm May 20, 2019
d6b8e17
tests: lib: installers: added script to install asterisk,pjsua and re…
nsevvel May 21, 2019
3618d0c
tests: lib: common.py: firefox_webproxy_driver: added code to save fi…
ppalaniappan May 20, 2019
d414d42
tests: lib: installer: fix syntax error
mattsm May 21, 2019
d239199
deploy-boardfarm-nodes: refactored ipvlan/macvlan
May 22, 2019
4bb9b48
debian: debian_isc: Adding CCCv4 option for MTA
May 23, 2019
6bb96bf
devices: debian_isc.py: add offset based on tzone
May 21, 2019
bc290e6
tests: rootfs_boot: mta ipv4 should be working for all modes now
mattsm May 23, 2019
53dcc9c
tests: rootfs_boot: fix check in except
mattsm May 28, 2019
4ebe3ee
bft: allow logging results into aws bucket
mattsm May 29, 2019
bbf97c0
bft: pick boards with fewest features
mattsm May 30, 2019
a0c3652
tests: latency_all: add test to check latency between all devices
mattsm May 24, 2019
46de30e
devices/casa_cmts: add proper name after pexpect is started
mattsm May 24, 2019
f893fbb
bft: remove debugging messages that made it through
mattsm Jun 3, 2019
8b68cd2
devices: common: error handling on EOF exception
mgualco-contractor Jun 4, 2019
9ed1091
tests: selftest: add a helper to test using get_device()
mgualco-contractor Jun 4, 2019
a25900d
devices: debian_isc: get_ipv4_timeserver
mgualco-contractor Jun 4, 2019
ce4e998
Add python-tk to travis.yaml
mbanders Jun 5, 2019
6deb3e2
tests: lib: network_testing: Modified function for sudo_sendline
ppalaniappan Jun 5, 2019
c93f228
deploy-boardfarm-nodes: ssh and web port refactor
mgualco-contractor Jun 5, 2019
834783d
devices: debian_isc add host-identifier option dhcp6.client-id for ipv6
mattsm May 8, 2019
b22f041
tests: lib: wifi: fix API inconsistency
mgualco-contractor Jun 6, 2019
76f61d7
deploy-boardfarm-nodes: build node if it doesn't exist
mattsm Jun 6, 2019
6e3bca0
devices: casa_cmts: tweak tcpdump functions
mattsm May 8, 2019
6cbc4c6
devices: debian_isc: add missing import
mattsm Jun 10, 2019
133f8cf
tests: rootfs_boot: move docsis ip networking checks to separate func…
mattsm Jun 6, 2019
28a2494
devices: debian_wifi: Added constructor to get interface and removed …
sravichandran-contractor Jun 11, 2019
6c61b59
devices: debian: allow debian to use ip/port as well as commands
mattsm Jun 6, 2019
955b5b7
tests: lib: wifi: Modified wifi client stub arguments
sravichandran-contractor Jun 11, 2019
b59a485
Fix 'Failed to run ... parse' message
mbanders Jun 11, 2019
4558a71
Add feature to post results to MongoDB
mbanders Jun 12, 2019
ebc018e
deploy-boardfarm-nodes.sh: create base stub func for docker w/ ssh on…
mattsm Jun 6, 2019
2e9df73
devices: base: Added ping function
sravichandran-contractor Jun 12, 2019
7c2aa37
devices: windows_telnet: Modified the ping function
sravichandran-contractor Jun 12, 2019
53e9d89
tests: lib: logging: make float formatter more specific
mattsm Jun 10, 2019
0b6caa9
Ran autopep8 on tests/__init__.py to fix indents and more
mbanders Jun 11, 2019
8badb1c
tests: selftest: skip copy test if we are not using ssh
mattsm Jun 12, 2019
85d8f63
tests: selftest: use tempfile that doesn't have fixed name
mattsm Jun 13, 2019
4a5ca2e
devices: debian: don't print messages from pre_cmd_host
mattsm Jun 12, 2019
c2fa4a6
tests: lib: common.py: moved retry function here from base
ppalaniappan Jun 14, 2019
4331758
tests: lib: network_testing: added ssh_service_verify()
ppalaniappan Jun 14, 2019
2f8eb33
Standarize format of boardfarm config json file
mbanders Jun 18, 2019
e586688
deploy-boardfarm-nodes: isolate mgmt iface helper
mgualco-contractor Jun 5, 2019
6243911
tests: lib: common.py: Added sleep to avoid multiple retry
ppalaniappan Jun 18, 2019
f4b29fa
deploy-boardfarm-nodes: Modified Wi-Fi container
May 22, 2019
e44cf78
testsuites: add checks for internet connectivity
mattsm Jun 12, 2019
4eb2729
bft: Add class for interacting with a boardfarm server
mbanders Jun 17, 2019
f833534
requirements: Ran sort on requirements.txt for clarity
mbanders Jun 19, 2019
e15777c
jenkinsfile: add gerrithub build pipeline
mattsm Jun 20, 2019
e12e5c8
deploy-boardfarm-nodes: Updated static_eth1_linked
Jun 18, 2019
6278d69
tests: lib: common.py: Added function to get a key value from gui json
ppalaniappan Jun 19, 2019
dba2622
devices: debian: add and remove hosts in dnsmasq
nsevvel Jun 19, 2019
2f815ba
debian:devices.py: update static IPv6 with prefix
Jun 18, 2019
a9cb10b
devices:debian_isc.py : IPv6 address and PD update
Jun 20, 2019
1e5e838
tests: lib: common: added retry_on_exception
mgualco-contractor Jun 19, 2019
4d7dcbf
tests: lib: common: added setup_asterisk_config
nsevvel Jun 19, 2019
93f5ef7
devices/debian: skip device if ipaddr attribute not set
mattsm Jun 20, 2019
b7ab57f
devices: casa_cmts: Modified get_cmipv6() to fetch all valid IPv6 add…
sravichandran-contractor Jun 20, 2019
f169fea
tests: lib: network_testing: Added sync for kill to finish
sravichandran-contractor Jun 25, 2019
441dd3d
Use atexit to checkin a station
mbanders Jun 25, 2019
6ad5b23
devices: added base_cmts and arris_cmts
mgualco-contractor Jun 28, 2019
0fdec6c
devices:debian_isc.py : update default route
Jun 25, 2019
93d75d5
devices: debian_isc: IPv6 Pool for unknown hosts
Jun 24, 2019
334acf9
devices: debian.py: Added a mgmt DNS for LAN
Jun 26, 2019
4b1a4bd
devices/debian: add mgmt before apt commands if set
mattsm Jun 28, 2019
385785e
devices: casa_cmts: Handled chnl bonding cli to work on diff cmts
kvetrivel-contractor Jun 28, 2019
2f60e14
tests: selftest: check command was sent properly
mattsm Jun 28, 2019
7d57bdb
Move database classes from devices/ to dbclients/
mbanders Jun 28, 2019
11e32d9
Add checkout of station AND devices from boardfarm server
mbanders Jul 1, 2019
753d509
bft: print name of test that fails to run via -e
mattsm Jun 30, 2019
8c799e6
devices: casa_cmts.py : Modified get_cmts_ip_bundle() function
ppalaniappan Jun 27, 2019
7789d5e
Revert "devices: casa_cmts: Handled chnl bonding cli to work on diff …
kvetrivel-contractor Jul 1, 2019
1d4d686
Add info to Readme about Qemu and Docker
mbanders Jul 3, 2019
1e1c050
devices: added kermit connection changes
mgualco-contractor Jul 1, 2019
efab3c1
Send BUILD_URL to boardfarm server
mbanders Jul 8, 2019
1c7b04d
Fix minor print error in boardfarmwebclient.py
mbanders Jul 9, 2019
3f2568f
devices: axiros_acs: allow more time for getcurrent
mattsm Jul 9, 2019
133ac81
Handle empty boardfarm config and bad board type argument
mbanders Jul 9, 2019
3e45fac
devices: casa_cmts: Modified the code to work on both AMS and CBN
ppalaniappan Jul 10, 2019
2dac73d
dbclients: Create function for notifying boardfarm server of error
mbanders Jul 11, 2019
ce009b1
Add --version to show version number
mbanders Jul 12, 2019
d619431
devices: casa_cmts: Modified chnl bonding function
ppalaniappan Jul 12, 2019
75f819b
Have BoardfarmWebClient report version in User-Agent
mbanders Jul 12, 2019
5d75545
bft: replace colons with dashes for AWS bucket
mattsm Jul 15, 2019
5f38762
devices: debian: properly eat all the extra chars
mattsm Jul 15, 2019
41a7569
For Zephyr, simplify creation of test_cases_list
mbanders Jul 16, 2019
ef13213
Print clear error when a wrong board name is given
mbanders Jul 16, 2019
9c3344a
Before logging data to databases, convert python objects
mbanders Jul 15, 2019
de3eb86
Fix running of analysis classes
mbanders Jul 16, 2019
1af7f2e
library: add shortname for printing details about object
mattsm Jul 16, 2019
7627b08
arguments: Alphabetize arguments
mbanders Jul 16, 2019
27e5836
Add bft version to data that is logged
mbanders Jul 16, 2019
bb04f66
arguments.py: tabs to spaces
mbanders Jul 17, 2019
66f1e84
tests/lib/common.py: remove unused imports
mbanders Jul 17, 2019
aaf1d0f
.travis.yml: lock down dist to test on
mattsm Jul 17, 2019
b30eaa1
bft: skip duplicate device types and mimic server behavior
mattsm Jul 16, 2019
b873067
arguments: add feature for devices in locations section to dut
mattsm Jul 16, 2019
9880969
tests: docsis: add shortname for cm cfg object
mattsm Jul 16, 2019
7e30d4d
Run autopep8 on a handful of files
mbanders Jul 18, 2019
9d6894c
bft: print time to connect to a device
mattsm Jul 16, 2019
6121bac
dbclients: Remove unused reference to a thing from the olden days
mbanders Jul 18, 2019
d321787
html results: Display conn_cmd or ipaddr:port
mbanders Jul 18, 2019
644a192
Add empty __init__.py to zephyr/ dir so we can import normally
mbanders Jul 18, 2019
8c429b9
devices: linux: moved get_interface_ipaddr() and get_interface_ip6addr()
ppalaniappan Jul 18, 2019
0890a0a
Add handling of optional _redirect key in bf config
mbanders Jul 17, 2019
479e0ad
devices: linux: moved few functions from base to linux module
ppalaniappan Jul 19, 2019
da224a7
devices: linux: moving common linux functions to linux.py module
ppalaniappan Jul 23, 2019
f3bd9c4
test: linux_boot: log test time to ELK (and others)
mattsm Jul 23, 2019
e281e09
tests: lib: bft_logging: Renamed file name
premandfriends Jul 23, 2019
0c3b1c7
devices: base: modified lib.logging to lib.bft_logging
premandfriends Jul 24, 2019
0398680
gitignore: add tags to ignore list
mattsm Jul 24, 2019
a114b0f
arguments: fix passing config file from command line
mattsm Jul 22, 2019
58a3762
tests: lib: gui_helper: add get value function for disabled input
Jul 24, 2019
5f3edee
tests: lib: SnmpHelper: added SnmpMib class
mgualco-contractor Jul 22, 2019
5033da2
deploy-boardfarm-nodes: stty columns in container
mgualco-contractor Jul 4, 2019
1b8f0f3
tests: Replace wan/lan 'eth1' with wan/lan.iface_dut
mbanders Jul 26, 2019
052e889
tests: linux_boot: add helper to get a device by feature
mattsm Jul 22, 2019
cb78a88
openwrt_router: Placeholder enable_mgmt_gui()
mbanders Jul 26, 2019
f384e4f
Consistently use os.path in config.py
mbanders Jul 25, 2019
9f6ccd0
devices: debian_isc: allow arbitrary order for DHCP starting messages
mattsm Jul 24, 2019
f1f21b2
zephyr: fix print statements
mbanders Jul 26, 2019
f70611e
devices: fix print statements
mbanders Jul 26, 2019
1c1e9d6
tests: fix print statements
mbanders Jul 26, 2019
9891392
tests/lib: fix print statements
mbanders Jul 26, 2019
0b2cda6
Fix or remove remaining print statements that were missed
mbanders Jul 28, 2019
17c7bfc
docsis.py: use except to be compatible with python 2 and 3
mbanders Jul 28, 2019
5544079
devices: base: remove unused function
mattsm Jul 29, 2019
77a869c
rootfs_boot.py: remove unused imports
mbanders Jul 30, 2019
6c7e530
devices: debian_isc: fix erouter_net reference, used as a list
mattsm Jul 30, 2019
7e1006f
Remove streamboost.py and imports of it
mbanders Jul 30, 2019
62cc84a
Pass config normally, don't import
mbanders Jul 26, 2019
379b289
kermit_connection.py: remove unused imports
mbanders Jul 30, 2019
8971321
kermit_connection.py: close() needs self
mbanders Jul 30, 2019
db5280d
base_cmts.py: fix import of base
mbanders Jul 30, 2019
8a82297
devices/debian_isc.py: Fix import of DebianBox
mbanders Jul 30, 2019
19a07bf
devices: remove unused imports
mbanders Jul 31, 2019
0fd4ff4
tests: remove unused imports
mbanders Jul 31, 2019
9c9afce
devices: Add missing 'self' to functions in classes
mbanders Jul 31, 2019
12811d2
devices: some pyflakes fixes
mbanders Jul 31, 2019
7e8df86
bft: remove duplicate import and alphabetize
mbanders Jul 31, 2019
bc06787
tests/lib: Move imports to separate lines with autopep8
mbanders Aug 2, 2019
1d53a67
devices: linux: moved methods from openwrt_router to linux and base.py
ppalaniappan Aug 1, 2019
99fbdba
zephyr_reporter.py: Remove unused or repeated imports
mbanders Aug 1, 2019
7de8c2f
pyflakes: Remove unused exception variables
mbanders Aug 6, 2019
cd6f051
Default output directory involve current working dir
mbanders Aug 2, 2019
af88561
devices: Moved arris_cmts, casa_cmts, base_cmts to boardfarm-docsis
sravichandran-contractor Jul 31, 2019
f03adea
tests/selftest: Fix mibs_location
mbanders Aug 7, 2019
f6ebda7
tests: lib: Removed docsis module as it is moved to boardfarm-docsis
ppalaniappan Aug 5, 2019
11bbe20
devices/windows_telnet: Fix 3 undefined variables
mbanders Aug 6, 2019
2c3de63
lib/common: fix use of 'self' that wasn't defined
mbanders Aug 6, 2019
92f1bfc
refactor: change lib to docsis_lib globally
mattsm Aug 7, 2019
ea6340e
devices/linux: Fix two undefined variables
mbanders Aug 6, 2019
2395747
devices/debian_isc: fix import of docsis object
mattsm Aug 7, 2019
90e1600
tests/lib: move mta_conf_Proc.tcl to docsis overlay
mattsm Aug 7, 2019
d1edde8
Move almost everything to a subdirectory called boardfarm
mbanders Aug 7, 2019
61e137b
bft: the change that moved all files is causing isuses
mattsm Aug 8, 2019
3325fae
bft: more fixes for running from symlinked dir
mattsm Aug 8, 2019
a35a025
bft: more fixes for running from external directory and moving file l…
mattsm Aug 8, 2019
1c58cce
tests: selftest: added missing comma
mgualco-contractor Aug 8, 2019
68cbad6
tests/lib/wifi: Use expect_prompt()
mbanders Aug 8, 2019
aff2e7f
Create setup.py so we can install boardfarm
mbanders Aug 8, 2019
bc42b7b
devices: debian: print the name of the device when connecting
mattsm Aug 8, 2019
0cb33d1
devices: debian: point dns at localhost
mattsm Aug 9, 2019
89d30b4
devices: docker_factory: add initial implementation
mattsm Jul 31, 2019
a75846b
boardfarm_config_example: run through python json tool
mattsm Aug 8, 2019
51ce599
travis.yml: build docker image for bft
mattsm Aug 9, 2019
865f710
FOO
mattsm Aug 9, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ coverage.xml
*.pot

# Django stuff:
*.log
local_settings.py

# Sphinx documentation
Expand All @@ -73,3 +72,18 @@ results/

# ctas
TAGS
tags

# Alternate config files
*.json

# Apple foo
.AppleDouble
.DS_Store

# Patch foo
*.rej
*.orig

# geckodriver log
geckodriver.log
40 changes: 40 additions & 0 deletions .jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
def changeBranch = "change-${GERRIT_CHANGE_NUMBER}-${GERRIT_PATCHSET_NUMBER}"

pipeline {
agent { label 'boardfarm' }

stages {
stage('checkout gerrit change') {
steps {
// TODO: don't hardcode user name
git url: 'ssh://[email protected]:29418/lgirdk/boardfarm'
sh "git fetch origin ${GERRIT_REFSPEC}:${changeBranch}"
sh "git rebase --abort || true"
sh "git reset --hard HEAD"
sh "git checkout ${changeBranch}"
sh "git rebase origin/master"
}
}
stage('run bft test') {
steps {
ansiColor('xterm') {
sh 'git show HEAD'
sh 'pip install --user -r requirements.txt'
sh 'yes | BFT_DEBUG=y ./bft -b qemux86-openwrt -r http://c4.lgirdk.com/~mattsm/openwrt-x86-generic-combined-ext4.vmdk -y -x travisci'
sh 'grep tests_fail...0, results/test_results.json'
}
}
}
stage('post results to gerrit') {
steps {
sh '''#!/bin/bash
cat results/test_results.json | jq '.test_results[] | [ .grade, .name, .message, .elapsed_time ] | @tsv' | \
sed -e 's/"//g' -e 's/\\t/ /g' | \
while read -r line; do
echo $line >> message
done
'''
}
}
}
}
24 changes: 24 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
dist: trusty
sudo: required
language: python
python:
- "2.7"
before_install:
- sudo apt-get -qq update
- sudo apt-get remove docker docker-engine docker.io
- sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get -qq update
- sudo apt-get install -y qemu-system-x86 docker-ce python-tk
- sudo apt-get install -y libsnmp-dev snmp-mibs-downloader
script:
- ./bft -l
- ./bft -i
- docker build -t bft:node boardfarm/bft-node
- yes | ./bft -b qemux86-openwrt -r https://www.dropbox.com/s/ak58icpzta1f0if/openwrt-x86-generic-combined-ext4.vmdk?dl=0 -y -x travisci
- grep tests_fail...0, results/test_results.json
- cat results/all.log
after_failure:
- yes | BFT_DEBUG=y ./bft -b qemux86-openwrt -r https://www.dropbox.com/s/ak58icpzta1f0if/openwrt-x86-generic-combined-ext4.vmdk?dl=0 -y -x travisci
- cat results/all.log
70 changes: 69 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,46 @@ Software Setup

If you are a Linux user, and wish to run and/or develop tests, please clone this repository and then install needed libaries:
```shell
apt-get install python-pip curl
apt-get install python-pip curl python-tk libsnmp-dev snmp-mibs-downloader
cd openwrt/
pip install -r requirements.txt
```

The file `config.py` is the main configuration. For example, it sets the location of the file that describes the available hardware.

### Compiling Qemu to simulate devices

[Qemu](https://www.qemu.org/) does full system simulation, and boardfarm can use that tool to run tests on simulated devices (e.g. a simulated OpenWrt router). If you want to use qemu, you will want a recent version (3.0 or higher). You may have to compile on your own system, and if so here's how:

```sh
sudo apt-get update
sudo apt-get install build-essential zlib1g-dev pkg-config \
libglib2.0-dev binutils-dev libboost-all-dev autoconf \
libtool libssl-dev libpixman-1-dev libpython-dev python-pip \
python-capstone virtualenv wget
wget https://download.qemu.org/qemu-4.0.0.tar.xz
tar xvJf qemu-4.0.0.tar.xz
cd qemu-4.0.0
./configure
make
sudo make install
```

### Getting Docker for simulated devices

Docker is also useful for creating simulated devices for running tests. To get the latest stable docker and set it up correctly:

```sh
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce
# Add your user to the docker group so that you can run docker without sudo
sudo usermod -aG docker $USER
```

Hardware Setup
--------------

Expand Down Expand Up @@ -230,4 +263,39 @@ The best automated tests share a few qualities:

The goal is to catch bugs in the software being tested. It is an annoying distraction when tests themselves crash. Keep your tests simple so that others can easily figure them out.

Boardfarm overlays
-----------------

Recently support for having overlays in a separate directory (e.g. a separat
git repository was added. This allows your own private tests, boards, and
testsuites, templates that you want to keep separate for whatever reason.
It's expected that if this is not private you can create a git repo and share
your layer with others.

The layout of the overlay will look exactly the same as the boardfarm repo:

```
my_overlay/
├── devices
│   ├── my_device.py
├── html
│   └── template_results.html
├── tests
│   ├── this.py
│   ├── that.py
│   └── foobar.py
└── testsuites.cfg
```

Tests, devices, and testsuites in your overlay are added to the available
tests, devices, testsuites. The email templates replace the ones from the main
boardfarm repo

To specify an over lay you simply need to the space separated overlays to the
BFT_OVERLAY environment variable:

export BFT_OVERLAY="../boardfarm-foo/ ../boardfarm-bar"

Then after running bft you should have access to your new tests, device types, etc

Good luck and thanks for reading!
Loading