Commit 584b2f0
committed
[#222] test: 파싱 성공·실패 계약을 단언하는 property 추가
CodeRabbit 리뷰 반영. 기존 property는 전부 '패닉하지 않는다'와
'결정적이다'만 확인하고 결과를 버렸습니다. 지적대로 유효 SQL이 실제로
파싱되는지는 아무도 검증하지 않고 있었습니다.
이게 왜 문제인지 실제로 확인했습니다. parse()가 무조건 빈 결과를
돌려주도록 바꿔봤더니:
parser_never_panics_on_arbitrary_text ok
parser_never_panics_on_sql_like_input ok
parser_never_panics_on_mutated_statement ok
parsing_is_deterministic ok
'아무것도 파싱하지 않는 파서'가 기존 property를 전부 만족합니다.
두 가지를 추가했습니다.
- valid_statement() 생성기 + valid_statements_parse_into_exactly_one_statement
구성상 유효한 SQL(SELECT/INSERT/UPDATE/DELETE/DROP 7형태, 세미콜론
유무 포함)이 파싱되고 정확히 한 문장을 만드는지 확인합니다.
- a_bare_statement_keyword_is_an_error
실패 쪽 계약입니다. 키워드만 있고 뒤가 없는 입력은 조용히 빈 결과가
아니라 에러여야 합니다.
bite-test: 위의 '빈 결과만 돌려주는 파서'를 넣으면 신규 2건만 FAILED로
뒤집히고 기존 패닉 property는 전부 통과합니다.
cargo test 687 passed / 0 failed (직전 683 + 4).
clippy --all-targets 73건으로 master와 동일.1 parent 40bae65 commit 584b2f0
1 file changed
Lines changed: 63 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
87 | 114 | | |
88 | 115 | | |
89 | 116 | | |
| |||
150 | 177 | | |
151 | 178 | | |
152 | 179 | | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
153 | 216 | | |
154 | 217 | | |
155 | 218 | | |
| |||
0 commit comments