27
Feb
Zephyr RTOS: ZMS free space 테스트 assertion 실패 수정
문제 요약 ZMS(Zephyr Memory Storage)의 test_zms_free_space 테스트가 write_block_size > 1인 환경(섹터 크기 4KB 이상)에서 assertion 실패. 테스트가 sizeof(struct zms_ate)를 하드코딩하여 free space를 계산하지만, ZMS 내부는 write_block_size의 배수로 올림한 ate_size를 사용하기 때문에 값이 불일치. 원본 이슈: zephyrproject-rtos/zephyr#101880 원인 분석 zms_mount() 시 ATE 크기는 zms_al_size(fs, sizeof(struct zms_ate))로 결정되어 write_block_size의 배수로 올림됨. 테스트 코드는 이를 무시하고 컴파일 타임 sizeof(struct zms_ate)를 사용하여: free space 산술 계산이 실제 ZMS 동작과 불일치 zassert_equal(ZMS_DATA_IN_ATE_SIZE, ...) — 정렬 패딩으로 인해 정확히 8바이트로 떨어지지 않음 VLA 버퍼가 큰 섹터 크기에서 스택 오버플로 유발 ZMS 구현 자체는 정상. 테스트 로직 버그. ...