.. SPDX-License-Identifier: GPL-2.0+ .. index:: single: itest (command) itest command ============= Synopsis -------- :: itest[.b | .w | .l | .q | .s] [*] [*] 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 ` 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.