Skip to main content
이 가이드는 디버깅, 서버 테스트 스위트 실행, VillageSQL에 기여하는 방법을 다룹니다. 작동하는 소스 빌드를 전제로 합니다 — 아직 하지 않았다면 소스에서 빌드를 참조하세요.

디버깅

VillageSQL 서버 디버깅은 Linux에서는 GDB를, macOS에서는 lldb를 사용합니다. macOS의 GDB는 코드 서명이 필요하여 설정하기 번거롭습니다 — lldb는 macOS의 표준 디버거이며 별도 설정 없이 바로 작동합니다.

Linux (GDB)

VillageSQL을 GDB에서 실행:
GDB 내부:
일반적인 GDB 명령어:

macOS (lldb)

VillageSQL을 lldb에서 실행:
lldb 내부:
일반적인 lldb 명령어:

테스트 실행

VillageSQL은 기능을 검증하기 위해 단위 테스트와 회귀 테스트를 포함합니다.

단위 테스트

VillageSQL 전용 단위 테스트 실행 (빌드 디렉터리 내에서):
또는 모든 단위 테스트 실행:

회귀 테스트

mysql-test 디렉터리로 이동:
전체 MySQL 테스트 스위트 실행 (느림):
VillageSQL 전용 테스트만 실행:
모든 하위 스위트를 포함한 VillageSQL 테스트 실행:
—suite vs —do-suite:
  • --suite=villagesql은 상위 레벨 villagesql 테스트만 실행합니다
  • --do-suite=villagesql은 하위 스위트(insert, select, stored_procedure 등)를 포함한 모든 테스트를 실행합니다

개별 테스트 실행

테스트 이름으로 특정 테스트 실행:
하위 스위트에서 테스트 실행:

테스트 결과 업데이트

기능 변경 후 예상 테스트 출력을 업데이트해야 하는 경우:
테스트 기록: 항상 .result 파일 변경 사항을 검토하여 버그가 아닌 의도된 동작을 반영했는지 확인하세요. --record 플래그는 예상 출력을 맹목적으로 덮어씁니다.

테스트 이식성

테스트 출력에 테스트 실행기의 임시 디렉터리 경로가 포함된 경우, 기록된 결과에 다른 머신에서 작동하지 않는 절대 경로가 포함되지 않도록 .test 파일 내부에 다음 지시문을 추가하세요:

테스트 실패 디버깅

VillageSQL 전용 로그 메시지(LogVSQL()을 통해 출력)는 기본적으로 억제됩니다. 테스트 실행 중 오류 로그에 표시되도록 하려면:
전체 오류 로그는 mysql-test/var/log/mysqld.1.err에 있습니다. 확장 회귀 테스트 작성에 대한 자세한 내용은 개발 가이드를 참조하세요.

바이너리 설치

VillageSQL을 시스템 전체에 설치하려면 (적절한 권한이 필요):
기본적으로 바이너리가 /usr/local/mysql/에 설치됩니다. 설치 접두사를 사용자 정의할 수 있습니다:

기여하기

VillageSQL에 기여하는 경우, 코딩 표준 및 개발 워크플로우에 대한 기여 가이드라인을 참조하세요.