Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

expect `Enable()` inTerm:'off' does not trigger failpoint code, but it's not as expect

オープン
#86 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
go
領域
testing-qa

調査の方向性

README の off アクションの定義から始め、変換後の Go コードで failpoint.Enable が return(true)->off、off、return(2) をどのように処理するかを追跡します。報告されたケースを使って go test -v -run TestGetValue を実行し、観測された出力が文書化されたセマンティクスと一致するかを比較します。3 つのケースが README に記載された動作を示せば完了です。

索引モデルが issue の本文から書いたものです。

説明

bug

Bug Report

  • CODE(Transfromed)
func GetValue() int {
	if _, _err_ := failpoint.Eval(_curpkg_("failpoint-name")); _err_ == nil {
		fmt.Println("enable failpoint")
	}
	return 1
}
  • TEST CODE
func TestGetValue(t *testing.T) {
	var err error
	fmt.Println("############case01###############")
	err = failpoint.Enable("test/failpoint-name", "return(true)->off")
	if err != nil {
		t.Fatal("enable failpoint failed:", err)
	}
	GetValue()

	fmt.Println("############case02###############")
	err = failpoint.Enable("test/failpoint-name", "off")
	if err != nil {
		t.Fatal("enable failpoint failed:", err)
	}
	GetValue()

	fmt.Println("############case03###############")
	err = failpoint.Enable("test/failpoint-name", "return(2)")
	if err != nil {
		t.Fatal("enable failpoint failed:", err)
	}
	GetValue()
}
  • EXPECT:
    According to README, "off: Take no action (does not trigger failpoint code)", used to stop triggering of the failpoint. So my expectation is that case02 and case03 should not print "enable failpoint".
  • ACTUAL:
    It seems no working. I'm not sure if I'm misunderstanding this argument.
go test -v -run TestGetValue
=== RUN   TestGetValue
############case01###############
enable failpoint
############case02###############
enable failpoint
############case03###############
enable failpoint
--- PASS: TestGetValue (0.00s)
主要言語
Go
スター
896
フォーク
68
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

pingcap/failpoint のほかの issue

pingcap/failpoint の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。