pintos -v -- -q run 'priority-change'
test를 하기위해 사용하게 되는 명령어
docker안에서 명령어 입력! 따옴표 안에 실행하고픈 테스트 이름을 넣으면 됨.
여기 있는 pintos라는 명령어를 사용하기 위해서는 아래 세팅을 해야함.
⚙️ 매번 pintos라고만 치고 실행하고 싶다면: 환경 변수 등록
find /pintos -name pintos
이거 하면 pintos 스크립트 위치를 알려주는데
/pintos/utils/pintos 랑 /pintos/src/utils/pintos에 있음
export PATH=$PATH:/pintos/utils
🧠 이걸 영구 적용하려면:
echo 'export PATH=$PATH:/pintos/utils' >> ~/.bashrc
source ~/.bashrc
당연히 얘네도 docker안에 입력해야함

📌 문제 원인
지금 너가 사용하는 PintOS 구조는 pintos-kaist 버전이 아닌,
공식 PintOS Reference (Stanford/CS140) 기본 버전 또는
Makefile에 테스트 자동화를 포함하지 않은 최소 버전이야.
즉, 이 구조에선 make check도 없고
TESTS=...도 지원되지 않으며
테스트 실행은 직접 명령어로 pintos 명령을 호출해서 수동으로 해야 함
make 명령어 비교 (Pintos 기준)| 명령어 | 목적 | 실행 위치 | 공통점 | 차이점 |
|---|---|---|---|---|
make clean | 빌드된 파일(.o, .d, kernel.bin 등) 제거 | /src, /src/threads 등 | 모두 Makefile에 정의된 규칙을 사용함 | 빌드된 결과물만 삭제하고 실행은 하지 않음 |
make | 현재 디렉토리의 Pintos 커널 빌드 | 보통 /src/threads | Makefile로 빌드 대상 파일을 자동 생성 | 커널만 컴파일하고 테스트는 실행하지 않음 |
make check | 전체 테스트 빌드 + 실행 | /src (프로젝트 루트) | 테스트를 위해 내부적으로 make 먼저 수행 | 모든 디렉토리의 테스트를 다 실행하며 시간이 오래 걸림 |
make clean – 이전 결과 삭제 (에러 방지용)make – 내가 수정한 코드가 잘 컴파일되는지 확인make check – 전체 테스트를 실행해서 결과 확인좋아, 이 오류 메시지:
make: *** No rule to make target 'tests/threads/priority-change.result'. Stop.
는 make가 테스트 실행 규칙을 찾지 못했다는 뜻인데,
대부분 다음 중 하나야:
너가 위치한 곳이 pintos/threads인데,
Pintos 공식 구조는 pintos/src/threads 구조여야 해.
cd /pintos/src/threads
src 폴더 안에 들어가서 Makefile이 있는지 확인해줘.
make로 전체 빌드를 먼저 해줘야 할 수 있어| 🔁 처음 빌드 했음? | make 또는 make all 했는지 |
cd /pintos/src/threads
make clean
make
이후 다시 아래 명령어 시도:
make tests/threads/priority-change.result