forked from panda-re/panda
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.travis.yml
124 lines (119 loc) · 3.6 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# The current Travis default is a VM based 16.04 Xenial on GCE
dist: xenial
language: c
compiler:
- gcc
cache:
# There is one cache per branch and compiler version.
timeout: 1200
ccache: true
pip: true
directories:
- $HOME/avocado/data/cache
addons:
apt:
sources:
# up to ubuntu xenial, we can use the ppa name
- sourceline: 'ppa:phulin/panda'
# the ppa doesn't support later ubuntu releases -- specify url instead
#- sourceline: 'deb http://ppa.launchpad.net/phulin/panda/ubuntu xenial main'
packages:
# Build dependencies
- chrpath
- libaio-dev
- libattr1-dev
- libbrlapi-dev
- libcap-dev
- libcap-ng-dev
- libgcc-4.8-dev
- libgnutls-dev
- libgtk-3-dev
- libiscsi-dev
- liblttng-ust-dev
- libncurses5-dev
- libnfs-dev
- libnss3-dev
- libpixman-1-dev
- libpng12-dev
- librados-dev
- libsdl1.2-dev
- libseccomp-dev
- libspice-protocol-dev
- libspice-server-dev
- libssh-dev
- liburcu-dev
- libusb-1.0-0-dev
- sparse
- uuid-dev
# PANDA stuff
- bison
- flex
- linux-libc-dev
- libcapstone-dev
- libdwarf-dev
- libelf-dev
- libprotobuf-c0-dev
- libprotoc-dev
- libwireshark-dev
- libwiretap-dev
- llvm-3.3-dev
- clang-3.3
- protobuf-c-compiler
- protobuf-compiler
- python-pip
- python-protobuf
- python-pycparser
# PYPANDA stuff
- python3
- python3-pip
- python3-venv
- python3-setuptools
- genisoimage # To make isos for run_guest
- wget
# To build 32-bit targets for testing
- libc6-dev-i386
- gcc-multilib
- nasm
# PANDA
sudo: required
dist: xenial
env:
global:
- PANDA_TEST="no" # These tests aren't too useful and timeout travis. They passed locally as of 2ce657c
git:
# we want to do this ourselves for some reason
submodules: false
before_install:
- sudo pip install pycparser cffi colorama protobuf # pycparser is a core dependency, rest are for pypanda
- git submodule update --init dtc
- cd $(pyenv root) && git checkout master && git pull; cd - # Update pyenv
- echo 'core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern # Store coredumps locally
before_script:
- ulimit -c unlimited -S # enable core dumps
# Setup python environment with pyenv (python2 and python3)
- pyenv install 2.7.9 || travis_terminate 1; # For core qemu
- pyenv install 3.6.6 || travis_terminate 1; # For pypanda
- pyenv shell 2.7.9 3.6.6 || travis_terminate 1; # Create a shell with both python2 and python3
- pip3 install cffi colorama protobuf # PYPANDA dependencies - not auto installed by setup because we don't use pip to install pypanda
script:
# Run install script
- sudo panda/scripts/install_ubuntu.sh || travis_terminate 1; # Build panda
# Install pypanda
- cd panda/pypanda
- python3 setup.py install || travis_terminate 1
# Run pypanda tests
- cd tests
- make || travis_terminate 1
- pip3 install -r requirements.txt || travis_terminate 1 # Install test python dependencies (capstone, pyelftools)
# - python3 multi_proc_cbs.py
# - python3 taint_reg.py
# - python3 taint_ram.py
# # Run record_then_replay on multiple architectures
# - python3 record_then_replay.py i386
# - python3 record_then_replay.py x86_64
# - python3 record_then_replay.py arm
# - python3 record_then_replay.py ppc
# # Test hooking framework
# - python3 hooking.py
# # Regression tests
# - python3 sleep_in_cb.py