assert-equal.jam

来自「C++的一个好库。。。现在很流行」· JAM 代码 · 共 30 行

JAM
30
字号
# Evaluates [ rulename arg1... : arg2... : ... : argN... ] and compares the
# result to expected-results. If there is a mismatch, prints an error message
# and exits.
rule assert-equal ( expected-results *
    : rulename a1 * :  a2 * : a3 * : a4 * : a5 * : a6 * : a7 * : a8 * : a9 * )
{

    local results = [ $(rulename) $(a1) : $(a2) : $(a3)
                        : $(a4) : $(a5) : $(a6) : $(a7) : $(a8) ] ;
                      
    if $(results) != $(expected-results)
    {
        EXIT ******ASSERTION FAILURE******* "
    [ $(rulename) " $(a1)
        ": "$(a2[1]) $(a2[2-])
        ": "$(a3[1]) $(a3[2-])
        ": "$(a4[1]) $(a4[2-])
        ": "$(a5[1]) $(a5[2-])
        ": "$(a6[1]) $(a6[2-])
        ": "$(a7[1]) $(a7[2-])
        ": "$(a8[1]) $(a8[2-]) "]
expected:
    (" $(expected-results) ")
result was:
    (" $(results) ")"
       ;
    
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?