[Minishell] 미니쉘 테스트 할만한거

  • env제외 모든 빌트인 커맨드는 PATH환경변수가 unset 되었을때, 대소문자 구분 하는거 (소문자만)
  • cd 할 때 $PWD, $OLDPWD 설정 되는거
  • exit 엄청 큰 숫자 하면 numberic 에러 나오는거 (가능한 숫자 최대는 2^63-1, 최소는 -(2^64))
  • exit ‘  3 ‘ 식으로 공백 들어가는건 에러 안나와야 하는거
  • cat | cat | cat 했을 때 SIGINT 주면 한번에 다 종료되는거
  • cp /bin/cat ls 해보고  ls 했을때 $PATH의 ls가 실행되고, 복사한 /bin/cat 이 실행되지 않는 지
  • /usr/bin/env 실행해봐서 자식 프로세스에 환경 변수 제대로 전달되는지
  • echo |, cat > 같이 문법 오류
  • exit 88 | echo $? 했을 때 0 나오는지
  • ./.  ./..  권한없음 등 execve 에러면 종료코드 126
  • 없는 파일 실행하려고 한거면 종료코드 127
  • > test echo hello world  했을때  echo hello world > test  한거랑 똑같은 결과
  • 없는 $NOT_EXISTS 같은거 그냥 타이핑 했을 때 새로운 프롬프트 나와야 함. 이때, exit코드는 0이어야 함.
  • echo hello > $NOT_EXISTS 같은거 했을때 ambiguous redirect 나와야 함.
  • cp somefile $NOT_EXISTS 같은거 했을 때 cp usage가 나와야 함
  • ls $NOT_EXISTS . 했을 때 ls . 만 한거처럼 나와야 함.
  • export PATH=  해서 PATH값을 비운 후에, cat, ls 같은거 했을 때 ‘No such file or directory’ 에러가 나와야 함.
  • PATH에서 커맨드를 실행할때, 실제 외부명령 이름과 입력 명령을 모두 lower한 다음 찾아내야함. (cAT, SorT 등등 다 인식)
  • echo, cd, pwd 등등 모든 빌트인 커맨드는 대소문자 구분을 해서, 소문자만 인식해야함.
    • 그러나 env는 bash에 빌트인이 아니기 때문에, 상관 없을 듯.
  • 공백이 있는 환경 변수의 값을 인자로 넣었을 때, 해당 공백들이 인자 구분자가 되어야 함. (아래 예시 참고)
$ export L1='hello'
$ export L2=' world'
$ ls $L1L2 ---> ls hello world
$ export LS='ls -l hello | cat < gogo.log'
$ $LS ---> "ls" "-l" "hello" "|" "cat" "<" "gogo.log"
  • export GG=’           ls -l  ‘ 같은 식으로 공백이 포함된 값 대입 시, 공백이 포함된 채로 환경 변수에 들어가야 함. (env 등으로 확인)
  • echo $GG 하면 공백들이 인자 구분자가 되지만, echo “$GG” 식으로 보간형식으로 들어갈 경우에는, 인자 구분자가 되지 않음.
  • unset ” 해서 잘못된 identifier로 인식하는지.
  • echo ” ” ” | cat -e   해서, 공백 두개 나오는지.

댓글

Designed by JB FACTORY