mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-31 20:42:49 +08:00 
			
		
		
		
	 89790ba2bf
			
		
	
	89790ba2bf
	
	
	
		
			
			* commit 'cd846b47977485bd4063e77a3324e6b7840567a2': fate: Ignore errors from concatenating report files Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
		
			
				
	
	
		
			123 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #! /bin/sh
 | |
| 
 | |
| config=$1
 | |
| 
 | |
| die(){
 | |
|     echo "$@"
 | |
|     exit 1
 | |
| }
 | |
| 
 | |
| test -r "$config"  || die "usage: fate.sh <config>"
 | |
| 
 | |
| workdir=$(cd $(dirname $config) && pwd)
 | |
| make=make
 | |
| tar='tar c'
 | |
| 
 | |
| . "$config"
 | |
| 
 | |
| test -n "$slot"    || die "slot not specified"
 | |
| test -n "$repo"    || die "repo not specified"
 | |
| test -d "$samples" || die "samples location not specified"
 | |
| 
 | |
| : ${branch:=master}
 | |
| 
 | |
| lock(){
 | |
|     lock=$1/fate.lock
 | |
|     (set -C; exec >$lock) 2>/dev/null || return
 | |
|     trap 'rm $lock' EXIT
 | |
| }
 | |
| 
 | |
| checkout(){
 | |
|     case "$repo" in
 | |
|         file:*|/*) src="${repo#file:}"      ;;
 | |
|         git:*)     git clone --quiet --branch "$branch" "$repo" "$src" ;;
 | |
|     esac
 | |
| }
 | |
| 
 | |
| update()(
 | |
|     cd ${src} || return
 | |
|     case "$repo" in
 | |
|         git:*) git fetch --quiet --force && git reset --quiet --hard "origin/$branch" ;;
 | |
|     esac
 | |
| )
 | |
| 
 | |
| configure()(
 | |
|     cd ${build} || return
 | |
|     ${shell} ${src}/configure                                           \
 | |
|         --prefix="${inst}"                                              \
 | |
|         --samples="${samples}"                                          \
 | |
|         --enable-gpl                                                    \
 | |
|         --enable-memory-poisoning                                       \
 | |
|         --enable-avresample                                             \
 | |
|         ${arch:+--arch=$arch}                                           \
 | |
|         ${cpu:+--cpu="$cpu"}                                            \
 | |
|         ${toolchain:+--toolchain="$toolchain"}                          \
 | |
|         ${cross_prefix:+--cross-prefix="$cross_prefix"}                 \
 | |
|         ${as:+--as="$as"}                                               \
 | |
|         ${cc:+--cc="$cc"}                                               \
 | |
|         ${ld:+--ld="$ld"}                                               \
 | |
|         ${target_os:+--target-os="$target_os"}                          \
 | |
|         ${sysroot:+--sysroot="$sysroot"}                                \
 | |
|         ${target_exec:+--target-exec="$target_exec"}                    \
 | |
|         ${target_path:+--target-path="$target_path"}                    \
 | |
|         ${target_samples:+--target-samples="$target_samples"}           \
 | |
|         ${extra_cflags:+--extra-cflags="$extra_cflags"}                 \
 | |
|         ${extra_ldflags:+--extra-ldflags="$extra_ldflags"}              \
 | |
|         ${extra_libs:+--extra-libs="$extra_libs"}                       \
 | |
|         ${extra_conf}
 | |
| )
 | |
| 
 | |
| compile()(
 | |
|     cd ${build} || return
 | |
|     ${make} ${makeopts} && ${make} install
 | |
| )
 | |
| 
 | |
| fate()(
 | |
|     test "$build_only" = "yes" && return
 | |
|     cd ${build} || return
 | |
|     ${make} ${makeopts} -k fate
 | |
| )
 | |
| 
 | |
| clean(){
 | |
|     rm -rf ${build} ${inst}
 | |
| }
 | |
| 
 | |
| report(){
 | |
|     date=$(date -u +%Y%m%d%H%M%S)
 | |
|     echo "fate:1:${date}:${slot}:${version}:$1:$2:${branch}:${comment}" >report
 | |
|     cat ${build}/config.fate >>report
 | |
|     cat ${build}/tests/data/fate/*.rep >>report || for i in ${build}/tests/data/fate/*.rep ; do cat "$i" >>report 2>/dev/null; done
 | |
|     test -n "$fate_recv" && $tar report *.log | gzip | $fate_recv
 | |
| }
 | |
| 
 | |
| fail(){
 | |
|     report "$@"
 | |
|     clean
 | |
|     exit
 | |
| }
 | |
| 
 | |
| mkdir -p ${workdir} || die "Error creating ${workdir}"
 | |
| lock ${workdir}     || die "${workdir} locked"
 | |
| cd ${workdir}       || die "cd ${workdir} failed"
 | |
| 
 | |
| src=${workdir}/src
 | |
| : ${build:=${workdir}/build}
 | |
| : ${inst:=${workdir}/install}
 | |
| 
 | |
| test -d "$src" && update || checkout || die "Error fetching source"
 | |
| 
 | |
| cd ${workdir}
 | |
| 
 | |
| version=$(${src}/version.sh ${src})
 | |
| test "$version" = "$(cat version-$slot 2>/dev/null)" && exit 0
 | |
| echo ${version} >version-$slot
 | |
| 
 | |
| rm -rf "${build}" *.log
 | |
| mkdir -p ${build}
 | |
| 
 | |
| configure >configure.log 2>&1 || fail 3 "error configuring"
 | |
| compile   >compile.log   2>&1 || fail 2 "error compiling"
 | |
| fate      >test.log      2>&1 || fail 1 "error testing"
 | |
| report 0 success
 | |
| clean
 |