mirror of https://gitee.com/openkylin/linux.git
selftests: forwarding: lib: Add helpers for busywaiting
The function busywait() is handy as a safety-latched variant of a while loop. Many selftests deal specifically with counter values, and busywaiting on them is likely to be rather common (it is not quite common now, but busywait() has not been around for very long). To facilitate expressing simply what is tested, introduce two helpers: - until_counter_is(), which can be used as a predicate passed to busywait(), which holds when expression, which is itself passed as an argument to until_counter_is(), reaches a desired value. - busywait_for_counter(), which is useful for waiting until a given counter changes "by" (as opposed to "to") a certain amount. Signed-off-by: Petr Machata <petrm@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
adc6c7ec11
commit
4121d9479b
|
@ -248,6 +248,24 @@ busywait()
|
|||
done
|
||||
}
|
||||
|
||||
until_counter_is()
|
||||
{
|
||||
local value=$1; shift
|
||||
local current=$("$@")
|
||||
|
||||
echo $((current))
|
||||
((current >= value))
|
||||
}
|
||||
|
||||
busywait_for_counter()
|
||||
{
|
||||
local timeout=$1; shift
|
||||
local delta=$1; shift
|
||||
|
||||
local base=$("$@")
|
||||
busywait "$timeout" until_counter_is $((base + delta)) "$@"
|
||||
}
|
||||
|
||||
setup_wait_dev()
|
||||
{
|
||||
local dev=$1; shift
|
||||
|
|
Loading…
Reference in New Issue