테스트 결과 점수는 제공된 테스트를 기반으로 평가됩니다. 각 프로젝트에는 여러 개의 테스트가 있으며, 테스트 이름은 모두 `tests`로 시작합니다. 제출한 내용을 모두 테스트하려면, 프로젝트 `build` 디렉토리에서 make check 명령을 실행하십시오. 이 명령은 각 테스트를 빌드하고 실행하며, 각각의 테스트에 대해 `pass` 또는 `fail` 메시지를 출력합니다. 테스트가 실패하면, make check는 실패 이유에 대한 몇 가지 세부 사항도 출력합니다. 모든 테스트를 실행한 후에는 make check가 테스트 결과에 대한 요약을 출력합니다. 개별 테스트를 한 번에 하나씩 실행할 수도 있습니다. 주어진 테스트 `t`는 출력 결과를 `t.output`에 기록한 후, 스크립트가 이를 채점하여 `pass` 또는 `fail`로 평가하고 결과를 `t.result`에 기록합니다. 개별 테스트를 실행하고 채점하려면, `build` 디렉토리에서 `.resul`t 파일을 직접 생성해야 합니다. 예: `make tests/threads/alarm-multiple.result`. 만약 make가 테스트 결과가 최신 상태라고 표시되더라도 다시 실행하려면, make clean 명령을 실행하거나 `.output` 파일을 직접 삭제하십시오. 기본적으로 각 테스트는 실행 중이 아니라 완료 시에만 피드백을 제공합니다. 실행 중인 테스트의 진행 상황을 관찰하고 싶다면 make check `VERBOSE=1`와 같이 `VERBOSE=1` 옵션을 make 명령줄에 추가하십시오. 모든 테스트와 관련 파일은 `pintos/src/tests` 디렉토리에 있습니다. 우리가 제출된 내용을 테스트하기 전에, 해당 디렉토리를 수정되지 않은 원본 상태로 교체하여 올바른 테스트가 사용되도록 보장할 것입니다. 따라서 디버깅에 도움이 된다면 일부 테스트를 수정할 수 있지만, 우리는 원본 테스트로 평가를 진행할 것입니다. 모든 소프트웨어는 버그가 있기 마련이므로, 일부 테스트에 결함이 있을 수도 있습니다. 테스트 실패가 테스트 자체의 결함 때문이라고 생각된다면, 이를 알려주십시오. 검토 후 필요한 경우 수정하겠습니다. 제공된 테스트 도구를 악용하지 말아 주십시오. 여러분의 코드는 우리가 제공하는 테스트 사례뿐만 아니라 일반적인 경우에도 제대로 작동해야 합니다. 예를 들어, 커널의 동작이 실행 중인 테스트 케이스의 이름에 따라 다르게 동작하도록 코드를 작성하는 것은 허용되지 않습니다. 이러한 방식으로 테스트 사례를 우회하려는 시도는 점수를 받을 수 없습니다. 구현된 코드가 이 부분에 대해 모호하다 생각된다면, 저희에게 문의해 주십시오.
### 제출
아카이브 파일을 생성하기 위한 명령어를 제공합니다. `threads`, `userprog`, `vm`, `filesys` 디렉토리가 있는 Pintos 프로젝트 루트 디렉토리로 이동하십시오. `TEAM=YOUR_TEAM_NUMBER make archive` (예: `TEAM=5 make archive`) 명령어를 입력하세요. 그러면 동일한 디렉토리에 `team5.tar.gz` 파일이 생성됩니다. 아카이브 파일을 제출하십시오. 중복 제출은 하지 마십시오. 팀당 하나의 제출만으로 충분합니다.