# Test for `irq_disable()` and `irq_restore()` This test checks if `irq_disable()` and `irq_restore()` work as intended. For that, the test uses two variables *a* and *b*, both initialized with 0. The main test will schedule a timer that expires in *T/2*. It will then set *a* to 1 and waits for *T* until it also sets *b* to one. The expectation is that during the ISR (the timer callback) *a* has a value of 1, but *b* still has a value of 0. The test is repeated, but this time the main thread calls `irq_disable()` before setting *a* and `irq_restore()` after setting *b*. It is now expected that - even though the timer again expires after setting *a* and before setting *b* - the execution of the ISR is delayed until `irq_restore()` is called. Thus, both *a* and *b* should already contain the new value in the ISR.