Gentoo Archives: gentoo-commits

From: Mike Frysinger <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage-utils:master commit in: tests/, tests/atom_compare/, tests/qfile/, /, travis/, tests/qmerge/
Date: Thu, 17 Dec 2015 05:06:30
Message-Id: 1450322761.27122b247cd14a8503fc5a4c126342cdbb973a97.vapier@gentoo
1 commit: 27122b247cd14a8503fc5a4c126342cdbb973a97
2 Author: Mike Frysinger <vapier <AT> gentoo <DOT> org>
3 AuthorDate: Thu Dec 17 03:26:01 2015 +0000
4 Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org>
5 CommitDate: Thu Dec 17 03:26:01 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=27122b24
7
8 enable travis build support
9
10 Rework some of the tests too to work under Ubuntu.
11
12 .travis.yml | 20 ++++++++++++++++++++
13 tests/atom_compare/Makefile | 23 +++++++++++++++++------
14 tests/atom_compare/atom-compare.py | 8 +++++++-
15 tests/init.sh | 2 +-
16 tests/qfile/dotest | 10 ++++++++--
17 tests/qmerge/dotest | 6 ++++++
18 travis/install-iniparser.sh | 18 ++++++++++++++++++
19 travis/lib.sh | 38 ++++++++++++++++++++++++++++++++++++++
20 travis/main.sh | 18 ++++++++++++++++++
21 9 files changed, 133 insertions(+), 10 deletions(-)
22
23 diff --git a/.travis.yml b/.travis.yml
24 new file mode 100644
25 index 0000000..015172e
26 --- /dev/null
27 +++ b/.travis.yml
28 @@ -0,0 +1,20 @@
29 +# Travis build integration.
30 +# https://docs.travis-ci.com/
31 +
32 +language: c
33 +compiler:
34 + - clang
35 + - gcc
36 +
37 +sudo: false
38 +
39 +os:
40 + - linux
41 +
42 +addons:
43 + apt:
44 + packages:
45 +
46 +before_install:
47 + - ./travis/install-iniparser.sh
48 +script: ./travis/main.sh
49
50 diff --git a/tests/atom_compare/Makefile b/tests/atom_compare/Makefile
51 index 8151922..71a980f 100644
52 --- a/tests/atom_compare/Makefile
53 +++ b/tests/atom_compare/Makefile
54 @@ -4,15 +4,26 @@ include ../subdir.mk
55 all: test
56
57 test check: static static.q portage
58 - diff -u $(s)/static.good $(b)/static
59 - diff -u $(s)/static.q.good $(b)/static.q
60 - diff -u $(s)/static.good $(b)/portage
61
62 t = \
63 - set -f && \
64 + @set -f && \
65 $(call mkdir,$(b)) && \
66 - $(realpath $(lastword $^)) $(1) `sed 's:\#.*::' $<` \
67 - > $(@:.tests=)
68 + good=`echo $< | sed 's:.tests:.good:'`; \
69 + out=$(@:.tests=); \
70 + ret=0; \
71 + $(realpath $(lastword $^)) $(1) `sed 's:\#.*::' $<` > $$out || ret=$$?; \
72 + case $$ret in \
73 + 0) \
74 + if diff -u $$good $$out; then \
75 + echo "PASS atom_compare $$out"; \
76 + else \
77 + echo "FAIL atom_compare $$out"; \
78 + fi;; \
79 + 77) echo "SKIP atom_compare $$out"; ret=0;; \
80 + *) echo "FAIL atom_compare $$out";; \
81 + esac; \
82 + [ $$ret -eq 0 ] && rm -f $$out; \
83 + exit $$ret
84
85 static: $(s)/static.tests $(atb)/q
86 $(call t,atom -c)
87
88 diff --git a/tests/atom_compare/atom-compare.py b/tests/atom_compare/atom-compare.py
89 index 7a9ce89..ab5ed6d 100755
90 --- a/tests/atom_compare/atom-compare.py
91 +++ b/tests/atom_compare/atom-compare.py
92 @@ -1,6 +1,12 @@
93 #!/usr/bin/python
94
95 -import sys,portage
96 +from __future__ import print_function
97 +
98 +import sys
99 +try:
100 + import portage
101 +except ImportError:
102 + sys.exit(77)
103
104 i = 1
105 while i < len(sys.argv):
106
107 diff --git a/tests/init.sh b/tests/init.sh
108 index a17821d..03d728a 100644
109 --- a/tests/init.sh
110 +++ b/tests/init.sh
111 @@ -24,7 +24,7 @@ setup_env() {
112 : ${as:=${ats}/tests/${a}}
113
114 if [[ -z ${GOOD} ]] && [[ -d ${ats}/.git ]] ; then
115 - eval $(eval_ecolors) 2>/dev/null
116 + eval $(eval_ecolors 2>/dev/null)
117 fi
118 }
119 setup_env
120
121 diff --git a/tests/qfile/dotest b/tests/qfile/dotest
122 index 32ca841..889aa95 100755
123 --- a/tests/qfile/dotest
124 +++ b/tests/qfile/dotest
125 @@ -1,5 +1,11 @@
126 #!/bin/bash
127
128 +# TODO: Make these work with local vdb instead of requiring /.
129 +if [[ -n ${TRAVIS_OS_NAME} ]] ; then
130 + echo "TODO: Make it work on non-Gentoo system"
131 + exit 0
132 +fi
133 +
134 . ../init.sh || exit 1
135
136 tests=(
137 @@ -9,10 +15,10 @@ tests=(
138 "q file -Co /bin/bash /bin/XXXXX"
139 "/bin/XXXXX"
140
141 - "echo -e \"/bin/bash\n/bin/XXXXX\" | q file -Cq -f -"
142 + "printf \"/bin/bash\n/bin/XXXXX\" | q file -Cq -f -"
143 "app-shells/bash"
144
145 - "echo -e \"/bin/bash\n/bin/XXXXX\" | q file -Co -f -"
146 + "printf \"/bin/bash\n/bin/XXXXX\" | q file -Co -f -"
147 "/bin/XXXXX"
148
149 "q file -Co -x bash /bin/bash"
150
151 diff --git a/tests/qmerge/dotest b/tests/qmerge/dotest
152 index 3fc01f2..224f3b9 100755
153 --- a/tests/qmerge/dotest
154 +++ b/tests/qmerge/dotest
155 @@ -1,5 +1,11 @@
156 #!/bin/bash
157
158 +# TODO: Make these work with local vdb instead of requiring /.
159 +if [[ -n ${TRAVIS_OS_NAME} ]] ; then
160 + echo "TODO: Make it work on non-Gentoo system"
161 + exit 0
162 +fi
163 +
164 . ../init.sh || exit 1
165
166 set -e
167
168 diff --git a/travis/install-iniparser.sh b/travis/install-iniparser.sh
169 new file mode 100755
170 index 0000000..c0edd83
171 --- /dev/null
172 +++ b/travis/install-iniparser.sh
173 @@ -0,0 +1,18 @@
174 +#!/bin/bash -e
175 +
176 +. "${0%/*}"/lib.sh
177 +
178 +main() {
179 + local pv="3.1"
180 + local S="iniparser"
181 + travis_fold start dep-iniparser
182 + rm -rf iniparser*
183 + v mkdir -p ../sysroot
184 + v wget http://distfiles.gentoo.org/distfiles/iniparser-${pv}.tar.gz
185 + v tar xf iniparser-${pv}.tar.gz
186 + m -C ${S}
187 + v cp ${S}/libiniparser.a ${S}/src/{dictionary,iniparser}.h ../sysroot/
188 + v rm -rf iniparser*
189 + travis_fold end dep-iniparser
190 +}
191 +main "$@"
192
193 diff --git a/travis/lib.sh b/travis/lib.sh
194 new file mode 100644
195 index 0000000..687ed41
196 --- /dev/null
197 +++ b/travis/lib.sh
198 @@ -0,0 +1,38 @@
199 +#!/bin/bash
200 +# Common funcs for working w/Travis.
201 +
202 +travis_fold() {
203 + if [[ -n ${TRAVIS_OS_NAME} ]] ; then
204 + printf 'travis_fold:%s:%s\r\n' "$@" | sed 's: :_:g'
205 + fi
206 +}
207 +
208 +if [[ -n ${TRAVIS_OS_NAME} ]] ; then
209 + whitebg=$(tput setab 7)
210 + blackfg=$(tput setaf 0)
211 + normal=$(tput sgr0)
212 +else
213 + whitebg=
214 + blackbg=
215 + normal=
216 +fi
217 +v() {
218 + local fold=""
219 + case $1 in
220 + --fold=*) fold=${1:7}; shift;;
221 + esac
222 + if [[ -n ${fold} ]] ; then
223 + travis_fold start "${fold}"
224 + echo "\$ $*"
225 + "$@"
226 + travis_fold end "${fold}"
227 + else
228 + echo "${whitebg}${blackfg}\$ $*${normal}"
229 + "$@"
230 + fi
231 +}
232 +
233 +ncpus=$(getconf _NPROCESSORS_ONLN)
234 +m() {
235 + v make -j${ncpus} "$@"
236 +}
237
238 diff --git a/travis/main.sh b/travis/main.sh
239 new file mode 100755
240 index 0000000..e333685
241 --- /dev/null
242 +++ b/travis/main.sh
243 @@ -0,0 +1,18 @@
244 +#!/bin/bash -e
245 +
246 +. "${0%/*}"/lib.sh
247 +
248 +main() {
249 + # For local deps like iniparser.
250 + export CPPFLAGS="-I${PWD}/../sysroot"
251 + export LDFLAGS="-L${PWD}/../sysroot"
252 +
253 + # Standard optimized build.
254 + m
255 + m check
256 +
257 + # Debug build w/ASAN and such enabled.
258 + m debug
259 + m check
260 +}
261 +main "$@"