| 
									
										
										
										
											2005-06-09 00:08:13 +00:00
										 |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | echo "$1 ($2, $3)..." | 
					
						
							| 
									
										
										
										
											2014-05-01 18:13:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 00:08:13 +00:00
										 |  |  | make clean 1>/dev/null 2>/dev/null | 
					
						
							| 
									
										
										
										
											2014-05-01 18:13:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 00:08:13 +00:00
										 |  |  | echo -n "building..." | 
					
						
							| 
									
										
										
										
											2014-05-01 18:13:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-26 22:13:03 +01:00
										 |  |  | if [ -f /proc/cpuinfo ] | 
					
						
							|  |  |  | then | 
					
						
							|  |  |  |   MAKE_JOBS=$(( ($(cat /proc/cpuinfo | grep -E '^processor[[:space:]]*:' | tail -n -1 | cut -d':' -f2) + 1) * 2 + 1 )) | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   MAKE_JOBS=8 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CFLAGS="$2 $CFLAGS $4" EXTRALIBS="$5" make -j$MAKE_JOBS -f $3 all_test 1>gcc_1.txt 2>gcc_2.txt | 
					
						
							| 
									
										
										
										
											2014-05-01 18:13:21 +02:00
										 |  |  | mret=$? | 
					
						
							|  |  |  | cnt=$(wc -l < gcc_2.txt) | 
					
						
							| 
									
										
										
										
											2017-02-24 20:50:37 +01:00
										 |  |  | # ignore 2 lines since ar prints to stderr instead of stdout and ar is called for | 
					
						
							| 
									
										
										
										
											2014-05-01 18:13:21 +02:00
										 |  |  | # $(LIBNAME) and testprof/$(LIBTEST_S) | 
					
						
							|  |  |  | if [[ $mret -ne 0 ]] || [[ $cnt -gt 2 ]]; then | 
					
						
							|  |  |  |    echo "build $1 failed! printing gcc_2.txt now for convenience" | 
					
						
							|  |  |  |    cat gcc_2.txt | 
					
						
							|  |  |  |    exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 00:08:13 +00:00
										 |  |  | echo -n "testing..." | 
					
						
							| 
									
										
										
										
											2014-05-01 18:13:21 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 00:08:13 +00:00
										 |  |  | if [ -a test ] && [ -f test ] && [ -x test ]; then | 
					
						
							| 
									
										
										
										
											2011-03-21 21:10:23 +01:00
										 |  |  |    ((./test >test_std.txt 2>test_err.txt && ./tv_gen > tv.txt) && echo "$1 test passed." && echo "y" > testok.txt) || (echo "$1 test failed, look at test_err.txt" && exit 1) | 
					
						
							| 
									
										
										
										
											2005-06-09 00:08:13 +00:00
										 |  |  |    if find *_tv.txt -type f 1>/dev/null 2>/dev/null ; then | 
					
						
							| 
									
										
										
										
											2017-03-01 13:35:19 +01:00
										 |  |  |       for f in *_tv.txt; do | 
					
						
							|  |  |  |          # check for lines starting with '<' ($f might be a subset of notes/$f) | 
					
						
							|  |  |  |          difftroubles=$(diff -i -w -B $f notes/$f | grep '^<') | 
					
						
							|  |  |  |          if [ -n "$difftroubles" ]; then | 
					
						
							|  |  |  |             echo "FAILURE: $f" | 
					
						
							|  |  |  |             diff -i -w -B $f notes/$f | 
					
						
							|  |  |  |             echo "tv_gen $f failed" && rm -f testok.txt && exit 1 | 
					
						
							|  |  |  |          else | 
					
						
							|  |  |  |             true | 
					
						
							|  |  |  |          fi | 
					
						
							|  |  |  |       done | 
					
						
							| 
									
										
										
										
											2005-06-09 00:08:13 +00:00
										 |  |  |    fi | 
					
						
							|  |  |  | fi | 
					
						
							| 
									
										
										
										
											2015-08-30 17:17:05 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 00:08:13 +00:00
										 |  |  | if [ -a testok.txt ] && [ -f testok.txt ]; then | 
					
						
							| 
									
										
										
										
											2017-05-11 15:53:22 +02:00
										 |  |  |    if [ "$LTC_COVERAGE" != "" ]; then | 
					
						
							|  |  |  |       ./coverage_more.sh > test_coverage_more.txt || exit 1 | 
					
						
							|  |  |  |       lcov_opts="--capture --no-external --directory src -q" | 
					
						
							|  |  |  |       lcov_out=$(echo coverage_$1_$2_$3 | tr ' -=+' '_')".info" | 
					
						
							|  |  |  |       lcov $lcov_opts --output-file $lcov_out | 
					
						
							|  |  |  |    fi | 
					
						
							| 
									
										
										
										
											2005-06-09 00:08:13 +00:00
										 |  |  |    exit 0 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | exit 1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-29 21:13:49 +02:00
										 |  |  | # $Source$ | 
					
						
							|  |  |  | # $Revision$ | 
					
						
							|  |  |  | # $Date$ |