shad-go/iprange
2023-03-22 21:48:33 +03:00
..
example_test.go [iprange] Fuzzing task, first commit. 2022-04-14 04:36:15 +03:00
funcs.go Update golangci-lint to 1.46.0: add some nolints to iprange. 2022-05-10 13:14:30 +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] Remove bonus line. 2023-03-22 21:48:33 +03:00
sortip.go Update golangci-lint to 1.46.0: add some nolints to iprange. 2022-05-10 13:14:30 +03:00
y.go Update golangci-lint to 1.46.0: add some nolints to iprange. 2022-05-10 13:14:30 +03:00

iprange

В этой задаче вам предстоит познакомиться с фаззингом, и его нативной поддержкой в 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...

Ссылки