shad-go/iprange
2022-04-14 04:36:15 +03:00
..
example_test.go [iprange] Fuzzing task, first commit. 2022-04-14 04:36:15 +03:00
funcs.go [iprange] Fuzzing task, first commit. 2022-04-14 04:36:15 +03:00
iprange_test.go [iprange] Fuzzing task, first commit. 2022-04-14 04:36:15 +03:00
lex.go [iprange] Fuzzing task, first commit. 2022-04-14 04:36:15 +03:00
README.md [iprange] Fuzzing task, first commit. 2022-04-14 04:36:15 +03:00
sortip.go [iprange] Fuzzing task, first commit. 2022-04-14 04:36:15 +03:00
y.go [iprange] Fuzzing task, first commit. 2022-04-14 04:36:15 +03:00

iprange [BONUS]

В этой задаче вам предстоит познакомиться с фаззингом, и его нативной поддержкой в go.

Нужно поправить баги в функции ParseList.

ParseList принимает на вход строку с описанием рейнджей ip адрессов в одном из n форматов

  • 10.0.0.1
  • 10.0.0.0/24
  • 10.0.0.*
  • 10.0.0.1-10 и возвращает список пар (min ip, max ip) (см. example).

Для обнаружения бага (crash функции) предлагается написать fuzz тест на функцию ParseList.

Проверка решения

Во-первых должны работать имеющиеся тесты

go test -v ./iprange...

Во-вторых, в CI есть приватные тесты, молча падающие на неправильной ParseList.

Как запустить fuzz тесты?

go test -v -fuzz=. ./iprange...

Ссылки