forked from panda-re/panda
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
133 lines (126 loc) · 3.66 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
125
126
127
128
129
130
131
132
133
dist: bionic
language: c
compiler: gcc-8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-8
env:
- CC=gcc-8
- AR=gcc-ar-8
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/python/core
- 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