diff options
Diffstat (limited to 'doc/usage/cmd/itest.rst')
-rw-r--r-- | doc/usage/cmd/itest.rst | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/doc/usage/cmd/itest.rst b/doc/usage/cmd/itest.rst new file mode 100644 index 00000000000..adcad05b2d4 --- /dev/null +++ b/doc/usage/cmd/itest.rst @@ -0,0 +1,115 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +.. index:: + single: itest (command) + +itest command +============= + +Synopsis +-------- + +:: + + itest[.b | .w | .l | .q | .s] [*]<value1> <op> [*]<value2> + +Description +----------- + +The itest command is used to compare two values. The return value $? is set +accordingly. + +By default it is assumed that the values are 4 byte integers. By appending a +postfix (.b, .w, .l, .q, .s) the size can be specified: + +======= ====================================================== +postfix meaning +======= ====================================================== +.b 1 byte integer +.w 2 byte integer +.l 4 byte integer +.q 8 byte integer (only available if CONFIG_PHYS_64BIT=y) +.s string +======= ====================================================== + +value1, value2 + values to compare. Numeric values are hexadecimal. If '*' is prefixed a + hexadecimal address is passed, which points to the value to be compared. + +op + operator, see table + + ======== ====================== + operator meaning + ======== ====================== + -lt less than + < less than + -le less or equal + <= less or equal + -eq equal + == equal + -ne not equal + != not equal + <> not equal + -ge greater or equal + >= greater or equal + -gt greater than + > greater than + ======== ====================== + +Examples +-------- + +The itest command sets the result variable $? to true (0) or false (1): + +:: + + => itest 3 < 4; echo $? + 0 + => itest 3 == 4; echo $? + 1 + +This value can be used in the :doc:`if <if>` command: + +:: + + => if itest 0x3002 < 0x4001; then echo true; else echo false; fi + true + +Numbers will be truncated according to the postfix before comparing: + +:: + + => if itest.b 0x3002 < 0x4001; then echo true; else echo false; fi + false + +Postfix .s causes a string compare. The string '0xa1234' is alphabetically +smaller than '0xb'. + +:: + + => if itest.s 0xa1234 < 0xb; then echo true; else echo false; fi + true + +A value prefixed by '*' is a pointer to the value in memory. + +:: + + => mm 0x4000 + 00004000: 00000004 ? + 00004004: 00000003 ? => + => if itest *0x4000 == 4; then echo true; else echo false; fi + true + => if itest *0x4004 == 3; then echo true; else echo false; fi + true + +Configuration +------------- + +The command is only available if CONFIG_CMD_ITEST=y. + +Return value +------------ + +The return value $? is 0 (true) if the condition is true and 1 (false) +otherwise. |