Regel-Kennung und Aufzeichnung Version 3
Die eingefrorenen Skripte ziehen von den festgeschriebenen Tests in den Kern. Aus ihren Endzuständen leitet sich die Regel-Kennung ab, die sich mit jeder Regel ändert, die ein Skript berührt. Aufzeichnungen tragen sie und werden mit anderen Regeln abgelehnt, statt eine scheinbare Abweichung zu melden. Fremde Aufzeichnungen dürfen höchstens 30 Tage lang sein. Ein Test hält fest, dass zu lange Namen beim Dekodieren abgelehnt werden. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -48,6 +48,21 @@ fn an_overlong_name_is_shortened_when_encoded() {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_name_longer_than_allowed_is_rejected_when_decoded() {
|
||||
// A join written by hand: the encoder would shorten the name. The tag of
|
||||
// a join is 1; the recording format pins the wire format of commands.
|
||||
let mut w = Writer::new();
|
||||
w.u8(1);
|
||||
w.raw(&[1; 16]);
|
||||
w.str(&"x".repeat(MAX_NAME_BYTES + 1));
|
||||
let bytes = w.into_bytes();
|
||||
assert_eq!(
|
||||
Command::decode(&mut Reader::new(&bytes)),
|
||||
Err(DecodeError::InvalidValue("player name"))
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn an_unknown_command_is_rejected() {
|
||||
assert_eq!(
|
||||
|
||||
Reference in New Issue
Block a user