| 
									
										
										
										
											2022-01-22 23:50:26 -05:00
										 |  |  |  | #!/bin/bash
 | 
					
						
							|  |  |  |  | # renders all files in test/songs/ and outputs them for delta testing. | 
					
						
							|  |  |  |  | # useful when doing changes to playback. | 
					
						
							|  |  |  |  | # requires GNU parallel. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | testDir=$(date +%Y%m%d%H%M%S) | 
					
						
							|  |  |  |  | if [ -e "test/result" ]; then | 
					
						
							|  |  |  |  |   lastTest=$(ls "test/result" | tail -2 | head -1 || echo "") | 
					
						
							|  |  |  |  | else | 
					
						
							|  |  |  |  |   lastTest="" | 
					
						
							|  |  |  |  | fi | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | echo "lastTest is $lastTest" | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-10 18:01:58 -04:00
										 |  |  |  | if [ -e "test/assert_delta" ]; then | 
					
						
							|  |  |  |  |   echo "assert_delta present." | 
					
						
							|  |  |  |  | else | 
					
						
							|  |  |  |  |   echo "compiling assert_delta..." | 
					
						
							|  |  |  |  |   gcc -Wall -Wextra -Werror -o "test/assert_delta" "test/assert_delta.c" -lsndfile || exit 1 | 
					
						
							|  |  |  |  | fi | 
					
						
							|  |  |  |  |    | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 23:50:26 -05:00
										 |  |  |  | echo "furnace test suite begin..." | 
					
						
							|  |  |  |  | echo "--- STEP 1: render test files" | 
					
						
							|  |  |  |  | mkdir -p "test/result/$testDir" || exit 1 | 
					
						
							| 
									
										
										
										
											2022-09-23 19:48:47 -04:00
										 |  |  |  | ls "test/songs/" | parallel --verbose -j8 ./build/furnace -output "test/result/$testDir/{0}.wav" "test/songs/{0}" | 
					
						
							| 
									
										
										
										
											2022-01-22 23:50:26 -05:00
										 |  |  |  | echo "--- STEP 2: calculate deltas" | 
					
						
							|  |  |  |  | if [ -z $lastTest ]; then | 
					
						
							|  |  |  |  |   echo "skipping since this apparently is your first run." | 
					
						
							|  |  |  |  | else | 
					
						
							|  |  |  |  |   mkdir -p "test/delta/$testDir" || exit 1 | 
					
						
							| 
									
										
										
										
											2022-09-10 18:57:28 -04:00
										 |  |  |  |   ls "test/result/$testDir/" | parallel --verbose -j4 ffmpeg -loglevel fatal -i "test/result/$lastTest/{0}" -i "test/result/$testDir/{0}" -filter_complex stereotools=phasel=1:phaser=1,amix=inputs=2:duration=longest -c:a pcm_s16le -y "test/delta/$testDir/{0}" | 
					
						
							| 
									
										
										
										
											2022-01-22 23:50:26 -05:00
										 |  |  |  | fi | 
					
						
							| 
									
										
										
										
											2022-09-10 18:01:58 -04:00
										 |  |  |  | echo "--- STEP 3: check deltas" | 
					
						
							| 
									
										
										
										
											2022-01-22 23:50:26 -05:00
										 |  |  |  | if [ -z $lastTest ]; then | 
					
						
							|  |  |  |  |   echo "skipping since this apparently is your first run." | 
					
						
							|  |  |  |  | else | 
					
						
							| 
									
										
										
										
											2022-09-10 18:01:58 -04:00
										 |  |  |  |   for i in `ls "test/result/$testDir"`; do | 
					
						
							|  |  |  |  |     echo -n "$i... " | 
					
						
							|  |  |  |  |     if ./test/assert_delta "test/delta/$testDir/$i"; then | 
					
						
							|  |  |  |  |       echo "[1;32mOK[m" | 
					
						
							|  |  |  |  |     else | 
					
						
							|  |  |  |  |       echo "[1;31mFAIL FAIL FAIL[m" | 
					
						
							|  |  |  |  |       ffmpeg -loglevel quiet -i "test/delta/$testDir/$i" -lavfi showspectrumpic "test/delta/$testDir/$i.png" | 
					
						
							|  |  |  |  |     fi | 
					
						
							|  |  |  |  |   done | 
					
						
							| 
									
										
										
										
											2022-01-22 23:50:26 -05:00
										 |  |  |  | fi |