€•¨IŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ9/translations/zh_CN/fault-injection/notifier-error-inject”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/zh_TW/fault-injection/notifier-error-inject”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/it_IT/fault-injection/notifier-error-inject”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/ja_JP/fault-injection/notifier-error-inject”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/ko_KR/fault-injection/notifier-error-inject”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/sp_SP/fault-injection/notifier-error-inject”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒNotifier error injection”h]”hŒNotifier error injection”…””}”(hh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒS/var/lib/git/docbuild/linux/Documentation/fault-injection/notifier-error-inject.rst”h KubhŒ paragraph”“”)”}”(hXNotifier error injection provides the ability to inject artificial errors to specified notifier chain callbacks. It is useful to test the error handling of notifier call chain failures which is rarely executed. There are kernel modules that can be used to test the following notifiers.”h]”hXNotifier error injection provides the ability to inject artificial errors to specified notifier chain callbacks. It is useful to test the error handling of notifier call chain failures which is rarely executed. There are kernel modules that can be used to test the following notifiers.”…””}”(hh¹hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubhŒ block_quote”“”)”}”(hŒa* PM notifier * Memory hotplug notifier * powerpc pSeries reconfig notifier * Netdevice notifier ”h]”hŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ PM notifier”h]”h¸)”}”(hhÖh]”hŒ PM notifier”…””}”(hhØhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hhÔubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhhÏubhÓ)”}”(hŒMemory hotplug notifier”h]”h¸)”}”(hhíh]”hŒMemory hotplug notifier”…””}”(hhïhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hhëubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhhÏubhÓ)”}”(hŒ!powerpc pSeries reconfig notifier”h]”h¸)”}”(hjh]”hŒ!powerpc pSeries reconfig notifier”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhhÏubhÓ)”}”(hŒNetdevice notifier ”h]”h¸)”}”(hŒNetdevice notifier”h]”hŒNetdevice notifier”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhhÏubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1hÍhŸh¶h K hhÉubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K hh£hžhubh¢)”}”(hhh]”(h§)”}”(hŒ"PM notifier error injection module”h]”hŒ"PM notifier error injection module”…””}”(hjBhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj?hžhhŸh¶h Kubh¸)”}”(hŒ4This feature is controlled through debugfs interface”h]”hŒ4This feature is controlled through debugfs interface”…””}”(hjPhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khj?hžhubhÈ)”}”(hŒJ/sys/kernel/debug/notifier-error-inject/pm/actions//error ”h]”h¸)”}”(hŒI/sys/kernel/debug/notifier-error-inject/pm/actions//error”h]”hŒI/sys/kernel/debug/notifier-error-inject/pm/actions//error”…””}”(hjbhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h Khj?hžhubh¸)”}”(hŒ-Possible PM notifier events to be failed are:”h]”hŒ-Possible PM notifier events to be failed are:”…””}”(hjvhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khj?hžhubhÈ)”}”(hŒC* PM_HIBERNATION_PREPARE * PM_SUSPEND_PREPARE * PM_RESTORE_PREPARE ”h]”hÎ)”}”(hhh]”(hÓ)”}”(hŒPM_HIBERNATION_PREPARE”h]”h¸)”}”(hjh]”hŒPM_HIBERNATION_PREPARE”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhjˆubhÓ)”}”(hŒPM_SUSPEND_PREPARE”h]”h¸)”}”(hj¤h]”hŒPM_SUSPEND_PREPARE”…””}”(hj¦hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhjˆubhÓ)”}”(hŒPM_RESTORE_PREPARE ”h]”h¸)”}”(hŒPM_RESTORE_PREPARE”h]”hŒPM_RESTORE_PREPARE”…””}”(hj½hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhjˆubeh}”(h]”h ]”h"]”h$]”h&]”j7j8uh1hÍhŸh¶h Khj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h Khj?hžhubh¸)”}”(hŒ2Example: Inject PM suspend error (-12 = -ENOMEM)::”h]”hŒ1Example: Inject PM suspend error (-12 = -ENOMEM):”…””}”(hjÝhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khj?hžhubhŒ literal_block”“”)”}”(hŒ¬# cd /sys/kernel/debug/notifier-error-inject/pm/ # echo -12 > actions/PM_SUSPEND_PREPARE/error # echo mem > /sys/power/state bash: echo: write error: Cannot allocate memory”h]”hŒ¬# cd /sys/kernel/debug/notifier-error-inject/pm/ # echo -12 > actions/PM_SUSPEND_PREPARE/error # echo mem > /sys/power/state bash: echo: write error: Cannot allocate memory”…””}”hjísbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jëhŸh¶h Khj?hžhubeh}”(h]”Œ"pm-notifier-error-injection-module”ah ]”h"]”Œ"pm notifier error injection module”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒ.Memory hotplug notifier error injection module”h]”hŒ.Memory hotplug notifier error injection module”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjhžhhŸh¶h K"ubh¸)”}”(hŒ4This feature is controlled through debugfs interface”h]”hŒ4This feature is controlled through debugfs interface”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K#hjhžhubhÈ)”}”(hŒN/sys/kernel/debug/notifier-error-inject/memory/actions//error ”h]”h¸)”}”(hŒM/sys/kernel/debug/notifier-error-inject/memory/actions//error”h]”hŒM/sys/kernel/debug/notifier-error-inject/memory/actions//error”…””}”(hj(hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K%hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K%hjhžhubh¸)”}”(hŒ1Possible memory notifier events to be failed are:”h]”hŒ1Possible memory notifier events to be failed are:”…””}”(hj<hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K'hjhžhubhÈ)”}”(hŒ'* MEM_GOING_ONLINE * MEM_GOING_OFFLINE ”h]”hÎ)”}”(hhh]”(hÓ)”}”(hŒMEM_GOING_ONLINE”h]”h¸)”}”(hjSh]”hŒMEM_GOING_ONLINE”…””}”(hjUhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K)hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhjNubhÓ)”}”(hŒMEM_GOING_OFFLINE ”h]”h¸)”}”(hŒMEM_GOING_OFFLINE”h]”hŒMEM_GOING_OFFLINE”…””}”(hjlhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K*hjhubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhjNubeh}”(h]”h ]”h"]”h$]”h&]”j7j8uh1hÍhŸh¶h K)hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K)hjhžhubh¸)”}”(hŒ?Example: Inject memory hotplug offline error (-12 == -ENOMEM)::”h]”hŒ>Example: Inject memory hotplug offline error (-12 == -ENOMEM):”…””}”(hjŒhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K,hjhžhubjì)”}”(hŒÌ# cd /sys/kernel/debug/notifier-error-inject/memory # echo -12 > actions/MEM_GOING_OFFLINE/error # echo offline > /sys/devices/system/memory/memoryXXX/state bash: echo: write error: Cannot allocate memory”h]”hŒÌ# cd /sys/kernel/debug/notifier-error-inject/memory # echo -12 > actions/MEM_GOING_OFFLINE/error # echo offline > /sys/devices/system/memory/memoryXXX/state bash: echo: write error: Cannot allocate memory”…””}”hjšsbah}”(h]”h ]”h"]”h$]”h&]”jûjüuh1jëhŸh¶h K.hjhžhubeh}”(h]”Œ.memory-hotplug-notifier-error-injection-module”ah ]”h"]”Œ.memory hotplug notifier error injection module”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K"ubh¢)”}”(hhh]”(h§)”}”(hŒ8powerpc pSeries reconfig notifier error injection module”h]”hŒ8powerpc pSeries reconfig notifier error injection module”…””}”(hj³hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj°hžhhŸh¶h K4ubh¸)”}”(hŒ4This feature is controlled through debugfs interface”h]”hŒ4This feature is controlled through debugfs interface”…””}”(hjÁhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K5hj°hžhubhÈ)”}”(hŒX/sys/kernel/debug/notifier-error-inject/pSeries-reconfig/actions//error ”h]”h¸)”}”(hŒW/sys/kernel/debug/notifier-error-inject/pSeries-reconfig/actions//error”h]”hŒW/sys/kernel/debug/notifier-error-inject/pSeries-reconfig/actions//error”…””}”(hjÓhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K7hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K7hj°hžhubh¸)”}”(hŒ;Possible pSeries reconfig notifier events to be failed are:”h]”hŒ;Possible pSeries reconfig notifier events to be failed are:”…””}”(hjçhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K9hj°hžhubhÈ)”}”(hŒf* PSERIES_RECONFIG_ADD * PSERIES_RECONFIG_REMOVE * PSERIES_DRCONF_MEM_ADD * PSERIES_DRCONF_MEM_REMOVE ”h]”hÎ)”}”(hhh]”(hÓ)”}”(hŒPSERIES_RECONFIG_ADD”h]”h¸)”}”(hjþh]”hŒPSERIES_RECONFIG_ADD”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K;hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhjùubhÓ)”}”(hŒPSERIES_RECONFIG_REMOVE”h]”h¸)”}”(hjh]”hŒPSERIES_RECONFIG_REMOVE”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KhjAubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhjùubeh}”(h]”h ]”h"]”h$]”h&]”j7j8uh1hÍhŸh¶h K;hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K;hj°hžhubeh}”(h]”Œ8powerpc-pseries-reconfig-notifier-error-injection-module”ah ]”h"]”Œ8powerpc pseries reconfig notifier error injection module”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K4ubh¢)”}”(hhh]”(h§)”}”(hŒ)Netdevice notifier error injection module”h]”hŒ)Netdevice notifier error injection module”…””}”(hjphžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjmhžhhŸh¶h KAubh¸)”}”(hŒ4This feature is controlled through debugfs interface”h]”hŒ4This feature is controlled through debugfs interface”…””}”(hj~hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KBhjmhžhubhÈ)”}”(hŒN/sys/kernel/debug/notifier-error-inject/netdev/actions//error ”h]”h¸)”}”(hŒM/sys/kernel/debug/notifier-error-inject/netdev/actions//error”h]”hŒM/sys/kernel/debug/notifier-error-inject/netdev/actions//error”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KDhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h KDhjmhžhubh¸)”}”(hŒ2Netdevice notifier events which can be failed are:”h]”hŒ2Netdevice notifier events which can be failed are:”…””}”(hj¤hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KFhjmhžhubhÈ)”}”(hŒ¸* NETDEV_REGISTER * NETDEV_CHANGEMTU * NETDEV_CHANGENAME * NETDEV_PRE_UP * NETDEV_PRE_TYPE_CHANGE * NETDEV_POST_INIT * NETDEV_PRECHANGEMTU * NETDEV_PRECHANGEUPPER * NETDEV_CHANGEUPPER ”h]”hÎ)”}”(hhh]”(hÓ)”}”(hŒNETDEV_REGISTER”h]”h¸)”}”(hj»h]”hŒNETDEV_REGISTER”…””}”(hj½hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KHhj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj¶ubhÓ)”}”(hŒNETDEV_CHANGEMTU”h]”h¸)”}”(hjÒh]”hŒNETDEV_CHANGEMTU”…””}”(hjÔhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KIhjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj¶ubhÓ)”}”(hŒNETDEV_CHANGENAME”h]”h¸)”}”(hjéh]”hŒNETDEV_CHANGENAME”…””}”(hjëhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KJhjçubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj¶ubhÓ)”}”(hŒ NETDEV_PRE_UP”h]”h¸)”}”(hjh]”hŒ NETDEV_PRE_UP”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KKhjþubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj¶ubhÓ)”}”(hŒNETDEV_PRE_TYPE_CHANGE”h]”h¸)”}”(hjh]”hŒNETDEV_PRE_TYPE_CHANGE”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KLhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj¶ubhÓ)”}”(hŒNETDEV_POST_INIT”h]”h¸)”}”(hj.h]”hŒNETDEV_POST_INIT”…””}”(hj0hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KMhj,ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj¶ubhÓ)”}”(hŒNETDEV_PRECHANGEMTU”h]”h¸)”}”(hjEh]”hŒNETDEV_PRECHANGEMTU”…””}”(hjGhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KNhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj¶ubhÓ)”}”(hŒNETDEV_PRECHANGEUPPER”h]”h¸)”}”(hj\h]”hŒNETDEV_PRECHANGEUPPER”…””}”(hj^hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KOhjZubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj¶ubhÓ)”}”(hŒNETDEV_CHANGEUPPER ”h]”h¸)”}”(hŒNETDEV_CHANGEUPPER”h]”hŒNETDEV_CHANGEUPPER”…””}”(hjuhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KPhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhj¶ubeh}”(h]”h ]”h"]”h$]”h&]”j7j8uh1hÍhŸh¶h KHhj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h KHhjmhžhubh¸)”}”(hŒ=Example: Inject netdevice mtu change error (-22 == -EINVAL)::”h]”hŒ actions/NETDEV_CHANGEMTU/error # ip link set eth0 mtu 1024 RTNETLINK answers: Invalid argument”h]”hŒŸ# cd /sys/kernel/debug/notifier-error-inject/netdev # echo -22 > actions/NETDEV_CHANGEMTU/error # ip link set eth0 mtu 1024 RTNETLINK answers: Invalid argument”…””}”hj£sbah}”(h]”h ]”h"]”h$]”h&]”jûjüuh1jëhŸh¶h KThjmhžhubeh}”(h]”Œ)netdevice-notifier-error-injection-module”ah ]”h"]”Œ)netdevice notifier error injection module”ah$]”h&]”uh1h¡hh£hžhhŸh¶h KAubh¢)”}”(hhh]”(h§)”}”(hŒFor more usage examples”h]”hŒFor more usage examples”…””}”(hj¼hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj¹hžhhŸh¶h KZubh¸)”}”(hŒkThere are tools/testing/selftests using the notifier error injection features for CPU and memory notifiers.”h]”hŒkThere are tools/testing/selftests using the notifier error injection features for CPU and memory notifiers.”…””}”(hjÊhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K[hj¹hžhubhÈ)”}”(hŒu* tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh * tools/testing/selftests/memory-hotplug/mem-on-off-test.sh ”h]”hÎ)”}”(hhh]”(hÓ)”}”(hŒ6tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh”h]”h¸)”}”(hjáh]”hŒ6tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh”…””}”(hjãhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K^hjßubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhjÜubhÓ)”}”(hŒ:tools/testing/selftests/memory-hotplug/mem-on-off-test.sh ”h]”h¸)”}”(hŒ9tools/testing/selftests/memory-hotplug/mem-on-off-test.sh”h]”hŒ9tools/testing/selftests/memory-hotplug/mem-on-off-test.sh”…””}”(hjúhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K_hjöubah}”(h]”h ]”h"]”h$]”h&]”uh1hÒhjÜubeh}”(h]”h ]”h"]”h$]”h&]”j7j8uh1hÍhŸh¶h K^hjØubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhŸh¶h K^hj¹hžhubh¸)”}”(hŒ‰These scripts first do simple online and offline tests and then do fault injection tests if notifier error injection module is available.”h]”hŒ‰These scripts first do simple online and offline tests and then do fault injection tests if notifier error injection module is available.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kahj¹hžhubeh}”(h]”Œfor-more-usage-examples”ah ]”h"]”Œfor more usage examples”ah$]”h&]”uh1h¡hh£hžhhŸh¶h KZubeh}”(h]”Œnotifier-error-injection”ah ]”h"]”Œnotifier error injection”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j[Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j5j2jjÿj­jªjjjgj¶j³j-j*uŒ nametypes”}”(j5‰j‰j­‰jj‰j¶‰j-‰uh}”(j2h£jÿj?jªjjgj°j³jmj*j¹uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.