Push_Swap 테스트 쉘 스크립트

bahn·2021년 5월 23일
0

2-Circle

목록 보기
4/5
post-thumbnail

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 프로그램과 파이프 연산자(|)를 활용하여

채점(?)을 받는다.

참고자료 - 쉘 스크립트 난수

profile
42Seoul-bahn

0개의 댓글