![見出し画像](https://assets.st-note.com/production/uploads/images/105343419/rectangle_large_type_2_7c570ed04ec36e76b12cc9c6a2da47c7.png?width=1200)
GO言語のプログラミングエッセンスを読んで:Go Fuzzingを試してみた その1
今朝も6時まで寝てしましいました。
かみさんのやっているウッドデッキの補修は雨のため中断です。
今週始めの週間天気予報では土曜日まで雨は降らないはずでしたが
外れたようです。
さて、今朝は、ゴールデンウイーク中に読んだ
の中で気になったことを試しています。
まずは、Fuzzingテストです。
ファジングとは ファジングとは、ソフトウェアテストの手法の一つで、ファズ(fuzz)と呼ばれる通常想定されていない「不正データ」「予期せぬデータ」「ランダムなデータ」を対象の製品・システムに与え意図的に例外を発生させ、潜在的なバグ・脆弱性を検出する手法です。
助手の猫が健在の時は、キーボードの上を歩いてランダムデータを入力してFuzzingテストをしてくれました。
GO言語のFuzzingテスト
を読んでログ分析ツールの関数をテストするコードを書いてみました。
package main
import (
"strings"
"testing"
)
func FuzzSetting(f *testing.F) {
f.Add(" number=1 ")
f.Add(" string=hehehe ")
f.Fuzz(func(t *testing.T, td string) {
rmap := make(map[string]string)
findSplunkPat(td, rmap)
if strings.Contains(td, "=") {
if s, ok := rmap[td]; !ok || s != td {
t.Fatalf("failed %s != %s", td, s)
}
}
})
}
テストを実行しようと思ったらビルドエラーになりました。
Wailsのプログラムであるのが問題なのかもしれません。
今朝は、遅く起きたので時間切れになってしまいました。
明日に続く
いいなと思ったら応援しよう!
![twsnmp](https://assets.st-note.com/production/uploads/images/14333815/profile_ee1accba5615957e5029db85d57fdb0a.jpg?width=600&crop=1:1,smart)