push_swap 프로그램을 구현하는 과정에서 필요한 테스트 쉘 스크립트 파일을 작성해보았다.
push_swap 프로그램은 최소 2개의 인자부터 수많은 인자들이 존재할 경우에도
정상적으로 동작해야한다.
그러기 위해서는 각 인자의 개수마다 경우의 수를 따져보고 테스트를 빈번하게 수행해야한다.
테스트하는 과정에서 일일히 인자를 기입하는 것이 정말 귀찮을 것이다.
그래도 조금이나마 작업 시간을 절약하고 귀찮은 과정을 줄이기 위해서
인자를 자동으로 생성해주며 테스트할 수 있는 쉘 스크립트 파일을 작성해보았다.
#!/bin/bash
i=$1
ARG=""
while [ $i -gt 0 ]
do
random_num="$(($RANDOM% 20-9))"
ARG="${ARG}$random_num "
i=$(($i-1))
done
clear
make re
echo "========================"
echo "Arguments : $ARG"
echo "========================"
./push_swap $ARG
./push_swap $ARG | ./checker $ARG
실행방법은 위 스크립트 파일의 인자로 push_swap 프로그램을 테스트할 인자의 개수를 기입해주면 된다.
인자로 들어온 인자의 개수가 0보다 클 경우를 while문의 조건문으로 설정해주었다.
i를 1씩 감소시키며 while문을 반복한다.
while문 조건에 부합한다면 난수를 생성한다.
random_num이라는 변수의 값으로 RANDOM% 19-9))의 값을 대입해주었다.
$RANDOM 이라는 bash 내부함수를 통해
-9보다 크거나 같고 10(-9+19)보다 작은 수까지의 난수들 중 하나를 random_num 변수에 저장한다.
그리고 문자열 변수 ARG와 생성된 난수를 병합시켜주었다.
while문을 통해 쉘 스크립트 인자만큼의 문자열로 된 난수 리스트를 만들었다면
해당 난수들을 push_swap 프로그램의 인자로 사용할 수 있다.
생성된 난수들을 확인할 수 있도록 echo 명령을 통해 터미널에 출력되도록 하였다.
push_swap 프로그램에서 해당 난수들을 오름차순 정렬하기 위해서
어떠한 명령어를 사용하였는지 확인하기위해
우선 push_swap 프로그램 단독적으로 실행시킨다.
그리고나서 다시 checker 프로그램과 파이프 연산자(|)를 활용하여
채점(?)을 받는다.