Bomby długości - wartości testowe
Wartości dobrane do typowych limitów i do różnicy między znakiem a bajtem. 12 wartości, każda z tym, co psuje, i z tym, co zamiast tego robi poprawna aplikacja.
Wpisuj je po jednej skrótem AltShiftN
w palecie albo weź wszystkie do skryptu poleceniem nkb emit length-bombs.
Pusta wartość
length-bombs/len-0- 0 grafemów
- 0 punktów kodowych
- 0 bajtów
- 0 jednostek UTF-16
- Co psuje
- Pusta wartość sprawdza granicę między polem niewypełnionym a wypełnionym niczym.
- Co robi poprawna aplikacja
- Pola wymagane odrzucają ją z jasnym komunikatem, a pola opcjonalne zapisują jako pustą.
255 znaków
length-bombs/len-255
255 × a
- 255 grafemów
- 255 punktów kodowych
- 255 bajtów
- 255 jednostek UTF-16
- Co psuje
- Klasyczna szerokość kolumny: jeden znak poniżej limitu, dokładnie na limicie i jeden ponad to trzy różne ścieżki w kodzie.
- Co robi poprawna aplikacja
- Przyjęte na limicie i odrzucone powyżej, z limitem podanym w komunikacie.
256 znaków
length-bombs/len-256
256 × a
- 256 grafemów
- 256 punktów kodowych
- 256 bajtów
- 256 jednostek UTF-16
- Co psuje
- Jeden znak ponad klasyczny limit, czyli miejsce, w którym zwykle dochodzi do cichego obcięcia.
- Co robi poprawna aplikacja
- Odrzucone z komunikatem, nigdy po cichu obcięte do 255.
254 znaki
length-bombs/len-254
254 × a
- 254 grafemy
- 254 punkty kodowe
- 254 bajty
- 254 jednostki UTF-16
- Co psuje
- Wartość tuż pod limitem, która pokazuje, czy limit nie jest przesunięty o jeden w którąkolwiek stronę.
- Co robi poprawna aplikacja
- Przyjęte bez zastrzeżeń.
1000 znaków
length-bombs/len-1000
1 000 × a
- 1 000 grafemów
- 1 000 punktów kodowych
- 1 000 bajtów
- 1 000 jednostek UTF-16
- Co psuje
- Pola komentarza i opisu zaprojektowane na jedno zdanie, a używane do wypracowań.
- Co robi poprawna aplikacja
- Przyjęte albo odrzucone z podanym limitem - nie przyjęte i obcięte.
4000 znaków
length-bombs/len-4000
4 000 × a
- 4 000 grafemów
- 4 000 punktów kodowych
- 4 000 bajtów
- 4 000 jednostek UTF-16
- Co psuje
- Limit częsty w starszych kolumnach baz danych i pierwszy rozmiar, przy którym pola tekstowe zaczynają po cichu zawodzić.
- Co robi poprawna aplikacja
- Ta sama zasada co wyżej, stosowana spójnie w interfejsie i w bazie.
65535 znaków
length-bombs/len-65535
65 535 × a
- 65 535 grafemów
- 65 535 punktów kodowych
- 65 535 bajtów
- 65 535 jednostek UTF-16
- Co psuje
- Limit najczęstszego typu kolumny tekstowej. Jego przekroczenie zwykle kończy się surowym błędem bazy danych.
- Co robi poprawna aplikacja
- Czytelny komunikat zamiast strony z błędem bazy danych.
100000 znaków
length-bombs/len-100000
100 000 × a
- 100 000 grafemów
- 100 000 punktów kodowych
- 100 000 bajtów
- 100 000 jednostek UTF-16
- Co psuje
- Liczniki znaków, układ, logi i każdy dalszy eksport, wszystko naraz.
- Co robi poprawna aplikacja
- Odrzucone wcześnie, zanim wartość przejdzie przez cały system.
128 znaków, 256 bajtów
length-bombs/bytes-vs-chars
128 × ą
- 128 grafemów
- 128 punktów kodowych
- 256 bajtów
- 128 jednostek UTF-16
- Co psuje
- 128 znaków, ale 256 bajtów: pole z limitem w bajtach odrzuca wartość, którą interfejs uznał za poprawną.
- Co robi poprawna aplikacja
- Ta sama jednostka limitu po obu stronach, podana w komunikacie.
64 emoji
length-bombs/emoji-truncation
64 × 😀
- 64 grafemy
- 64 punkty kodowe
- 256 bajtów
- 128 jednostek UTF-16
- Co psuje
- Obcinanie po bajtach przecina ostatni znak na pół i daje wartość, która nie jest już poprawnym tekstem.
- Co robi poprawna aplikacja
- Obcinanie, jeśli w ogóle następuje, zachodzi na granicach znaków - nigdy w połowie znaku.
200 znaków bez spacji
length-bombs/one-word-200
200 × a
- 200 grafemów
- 200 punktów kodowych
- 200 bajtów
- 200 jednostek UTF-16
- Co psuje
- 200 znaków bez spacji: układy, które zawijają tekst na spacjach, wypychają wartość poza jej kontener.
- Co robi poprawna aplikacja
- Zawinięte albo przycięte w obrębie kontenera, bez wychodzenia na otaczający interfejs.
Jeden znak
length-bombs/len-1
a
a
- 1 grafem
- 1 punkt kodowy
- 1 bajt
- 1 jednostka UTF-16
- Co psuje
- Najkrótsza niepusta wartość, przeciw rzadko testowanym regułom długości minimalnej.
- Co robi poprawna aplikacja
- Przyjęty albo odrzucony zgodnie z podanym minimum, a nie przyjmowany po cichu tam, gdzie minimum istnieje.