Bitcoin: إضافة اختبارات للتحقق من أسباب الرفض المفقودة للوظيفة IsStandardTx

تم إنشاؤها على ٦ نوفمبر ٢٠١٩  ·  3تعليقات  ·  مصدر: bitcoin/bitcoin

يمكن أن ترجع الدالة IsStandardTx عددًا من الأسباب للمعاملات غير القياسية. يتم اختبار عدد قليل منها حاليًا من جهة من خلال اختبار الوحدة test_IsStandard ( transaction_tests.cpp ) ، والتحقق مباشرةً من نتيجة استدعاء الوظيفة ، من ناحية أخرى عن طريق الاختبار الوظيفي mempool_accept.py ، الاختبار غير المباشر باستخدام testmempoolaccept RPC والتحقق من الحقل reject-reason في النتيجة. في الفرع الرئيسي الحالي (7967104aee055476107dc17265cefc4ae4e75378) ، تبدو تغطية الاختبار كما يلي:

| IsStandardTx() سبب الرفض | اختبار وظيفي ( mempool_accept.py ) | اختبار الوحدة ( transaction_tests.cpp ) |
| ------------- |: -------------: |: -----: |
| "version" | : heavy_check_mark: | |
| "tx-size" | : heavy_check_mark: | |
| "scriptsig-size" |
| "scriptsig-not-pushonly" | : heavy_check_mark: | |
| "scriptpubkey" | : heavy_check_mark: | : heavy_check_mark: |
| "bare-multisig" |
| "dust" | : heavy_check_mark: | : heavy_check_mark: |
| "multi-op-return" | : heavy_check_mark: | : heavy_check_mark: |

أعتقد أنه سيكون من المنطقي إجراء اختبار واحد على الأقل لكل سبب إما عن طريق اختبار الوحدة أو الاختبار الوظيفي - مقابل "scriptsig-size" و "bare-multisig" ليس لدينا أي اختبار ، لذلك هؤلاء هم الأكثر مطلوب كما هو الحال الآن. بالنظر إلى ذلك ، سيؤدي ذلك إلى القائمة التالية المكونة من سبع مهام صغيرة (مرتبة تقريبًا حسب الأولوية التنازلية):

  • [x] إضافة اختبار وحدة مقابل "scriptsig-size" reason (PR # 17480 ، الالتزام 5e8a56348b5e1026e9ddcae0b2fa2a68faf4439e ، تم بواسطة نفسي المتواضع)
  • [x] إضافة اختبار وحدة مقابل "bare-multisig" reason (PR # 17502 ، الالتزام 1bb5d517aa616c1d5b5801d2ea36a2de5fb61eba ، تم بواسطة نفسي المتواضع)
  • [x] أضف اختبارًا وظيفيًا مقابل "scriptsig-size" reason (PR # 17532 ، الالتزام 8f2d7737cc236b6122f30e31856eb3181960fba1 ، تم إجراؤه بواسطة نفسي المتواضع)
  • [x] أضف اختبارًا وظيفيًا مقابل "bare-multisig" reason (PR # 17541 ، الالتزام 1be0b1fb2adcf95d76f879195564c0bf84162e31 ، تم بواسطة نفسي المتواضع)
  • [x] أضف اختبار الوحدة مقابل "scriptsig-not-pushonly" reason (PR # 17720 ، الالتزام 5aab011805ceb12801644170700b1a62e0bf4a5d ، تم بواسطة نفسي المتواضع)
  • [x] أضف اختبار الوحدة مقابل "tx-size" reason (PR # 17947 ، الالتزام 4537ba5f21ad8afb705325cd8e15dd43877eb28f ، dony by humble self)
  • [x] أضف اختبار الوحدة مقابل "version" reason (PR # 17555 ، الالتزام https://github.com/bitcoin/bitcoin/pull/17555/commits/76303f65f92a0fbe9a90c0e807554a6daa860636 ، تم بواسطة dspicher)

أعتقد أن هذا سيكون مرشحًا جيدًا "للمشكلة الأولى" - فأنا أميل إلى العمل على ذلك بنفسي ، ولكن لتشجيع المساهمين الجدد (ومعرفة مدى فائدة "المشكلات الأولى الجيدة" في الدخول) المسها لبعض الوقت.

Tests good first issue

التعليق الأكثر فائدة

dspicher : سعيد لسماع أنك مهتم! تم فتح PRs لكل من الوحدة والاختبار الوظيفي لـ "bare-multisig" خلال الأيام الماضية (انظر # 17502 و # 17541 - لم يتم دمج كلاهما بعد على الرغم من ذلك) ، وبالتالي الآن الاختبارات الثلاثة التالية هي مفقود:

  • اختبار الوحدة لسبب "scriptsig-not-pushonly"
  • اختبار الوحدة لسبب "tx-size"
  • اختبار الوحدة لسبب "version"

لا تتردد في العمل على هؤلاء ، واستمتع! :)

ال 3 كومينتر

أود العمل على هذا.

theStack هل بدأت بالفعل في اختبارات "bare-multisig" ؟

dspicher : سعيد لسماع أنك مهتم! تم فتح PRs لكل من الوحدة والاختبار الوظيفي لـ "bare-multisig" خلال الأيام الماضية (انظر # 17502 و # 17541 - لم يتم دمج كلاهما بعد على الرغم من ذلك) ، وبالتالي الآن الاختبارات الثلاثة التالية هي مفقود:

  • اختبار الوحدة لسبب "scriptsig-not-pushonly"
  • اختبار الوحدة لسبب "tx-size"
  • اختبار الوحدة لسبب "version"

لا تتردد في العمل على هؤلاء ، واستمتع! :)

يتم تنفيذ جميع اختبارات الوحدة والاختبارات الوظيفية المفقودة ودمجها في الفرع الرئيسي الآن: tada:: beer: لذلك أقوم بإغلاق هذه المشكلة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات