Skip to content

echoja/pstest

Repository files navigation

42 Piscine test tools

42 피신 테스트 툴입니다.

SHELL

서브젝트 폴더에 해당 스크립트 파일을 복사하여 넣고 bash run.sh로 실행시킵니다.

C

기본 사용법

  • 해당 서브젝트의 최상위 폴더에 ``test_cxx_gen` 파일을 복사하여 붙여넣습니다.
  • bash run.sh 로 쉘 스크립트를 실행시킵니다.

유의사항

  • 아래 사항이 지켜져야 테스트가 올바로 작동합니다.
    • ex00, ex01 등의 문제 폴더 안에 소스파일이 하나만 존재해야 합니다.
    • 소스파일 이름과 함수 이름이 일치해야 합니다.
  • 테스트를 실행을 하게 되면 src 폴더와 build 폴더가 자동으로 생성되며 필요한 파일들이 추가적으로 생성됩니다. 이 파일/폴더들은 오직 테스트를 위한 것이기 때문에 언제든지 삭제해도 무방합니다.
  • 프로그램에 결함이나 오류가 있을 수 있으므로 본인이 작성한 소스코드는 관리를 잘해주세요. 삭제하거나 옮기는 기능을 최대한 지양했지만 불상사는 언제든 생길 수 있습니다...
  • 테스트 용도로만 이용해주시기 바랍니다. 평가 시에는 보조적으로만 이용하시고 코드를 살펴보는 걸 중점적으로 진행하면 좋을 것 같습니다.
  • 기타 문의는 이슈를 남기거나 eszqsc112@gmail.com 으로 연락주세요.

부가 옵션

옵션을 추가하여 테스트의 동작을 더 세밀하게 지정할 수 있습니다.

  • -c : 컴파일 및 실행만 수행합니다. (플래그 설정 되어있음)
  • -n : norminette만 수행합니다. (플래그 설정 되어있음)
  • -{숫자} : ex{숫자}만 테스트를 수행합니다. (옵션으로 넣는 숫자는 앞에 0이 없어야 합니다.) (예: -4 로 해야 ex04의 테스트를 진행함)

예시 (위 이미지에서 c03 폴더에 터미널을 켰다고 가정)

  • bash asdf/run.sh -4 -c : ex04만 컴파일하여 수행 (norminette 검사 수행하지 않음)

test_c_template

test_c_template 란 서브젝트별 테스트를 더 편리하게 생성하기 위하여 미리 어느정도 공통된 내용을 짜 놓은 것입니다. 서브젝트마다 테스트의 구조가 크게 다르지 않기 때문에 새로운 서브젝트의 테스트를 만들 때마다 이 test_c_template 으로부터 새 테스트를 만들어나가면 됩니다.

  • run.sh : 테스트가 동작하는 로직이 담겨져 있습니다.
  • testcode : 실제로 테스트를 수행할 코드와 기대되는 결과값 등이 작성되어 있습니다. 파일 내에서 어떤 영역을 레이블: 로 구분하며, 영역마다 저마다의 역할이 있습니다.
    • include: #include 할 헤더들의 목록입니다.
    • ex{숫자}: 해당 ex문제에서 실행할 코드입니다. ( >= 0.2) 프로그램을 실행시키는 과제일 경우, 즉 main 함수가 포함되어 있는 경우에는 해당 코드는 모두 명령 실행모드로 됩니다. 이 때, ;로 명령어를 구분하면 됩니다. test 명령은 자동으로 해당 코드의 목적 파일 이름으로 대체됩니다. (예: test 1 2 3 ; test 4 5 6: 해당 프로그램을 실행시키는데, 첫 번째에는 1, 2, 3을 인수로 넘기며, 두 번째 실행에는 4, 5, 6을 인수로 넘깁니다.)
    • ex{숫자}-expected: 테스트 기댓값으로 나오는 평문입니다. 코드랑은 아무런 관계가 없고, 텍스트 그대로 출력됩니다. 중요한 곳은 아닙니다.
    • end: testcode 파일의 끝을 나타내는 용도입니다.

변경 이력

2020. 7. 15.

  • c02 업데이트 (run.sh 파일 갱신, ex01 잘못된 테스트 코드 수정)
  • c03 업데이트 (run.sh 파일 갱신)
  • c04 업데이트 (run.sh 파일 갱신)
  • c05 업데이트 (run.sh 파일 갱신)
  • (0.3) main 외부에 선언할 것 testcode에 지정할 수 있도록 하기. (ex00-other: 레이블 활용)
  • 컴파일 실패 유무에 따라 파일 실행시키기/실행시키지 않기 기능 추가 (컴파일이 되지 않음에도 가장 최근에 성공한 실행 파일이 실행되는 문제 해결)
  • (0.3) Exercise 폴더 내에 있는 모든 .c 파일을 읽어서 구현된 함수에 대하여 선언부를 자동으로 추가하도록 함. (소스 파일이 여러 개일 때 동작하지 않던 문제 해결)
  • (0.3) .c 파일을 제외한 파일은 무시됨. (폴더에 상관 없는 파일들이 포함되어 있을 경우 제대로 동작하지 않던 문제 해결)

2020. 7. 14.

  • c06 최초 업로드
  • c05 최초 업로드

2020. 7. 13.

  • C 과제 테스트용 스크립트 run.sh 파일을 다소 개선했습니다.
    1. 재귀함수 등이 존재할 때 테스트 코드가 잘 작성되지 않던 문제 수정
    2. 프로그램을 만드는 과제일 때 (소스 파일 내에 main 함수 선언이 되어있을 시) 자동으로 인식하여 테스트코드를 c코드가 아닌 터미널 명령어로 인식하여 명령어 실행. (자세한 사용법은 안내 참조)

이슈

  • norminette 3.0 대응 미비
  • 헤더 파일 (.h)을 읽지 못함. (c08 이후는 다소 제한됨)
  • Makefile 관련 기능 없음.
  • c03-ex02 테스트코드에서 처음 배열을 초기화하는 과정에서 쓰레기값이 들어가있을 수 있는 문제 (mosong 제보)
  • 소스 파일이 여러 개이거나 ex.. 폴더에 상관 없는 파일들이 포함되어 있을 경우 제대로 작동하지 않음

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages