dannyman.toldme.com

About Me : Free Style : Good Reads : News and Reaction : Photographs : Technical : Travels : Unsorted

Search:
December 15, 2009
Technical

Shell Function: Compare Output of Two Commands

I just wrote this up for some test automation. This function gets passed two commands, runs both commands, and returns “PASS” if they match, or “FAIL” with the diff if they do not match.

compare_output()
{
    out1=/tmp/output-$$.1
    out2=/tmp/output-$$.2
    $1 2>&1 > $out1
    $2 2>&1 > $out2
    diff -q >/dev/null $out1 $out2
    if [ $? != 0 ]; then
        echo "FAIL"
        echo
        echo "Details:"
        diff $out1 $out2
        echo
    else
        echo "PASS"
    fi
    rm $out1 $out2
}

echo -n "Test that will fail: "
compare_output 'echo pass' 'echo fail'

echo -n "Text that will pass: "
compare_output 'echo pass' 'echo pass'

Read More

Next:
Previous:
Categories: Technical
Possibly-Related Posts
Apple Fail
Tracking the Value of Automation
Technology Companies: 2008 Profit-per-Employee
Banking History
Windows 7 vs Ubuntu 9.10
Chicago Card Plus Defeats New York EasyPay Xpress
Firing Off SSH Commands

Comment

Leave a comment . . .

  1. You must provide an e-mail address.
  2. First-time comments will be held for review.
  3. Bogus e-mail addresses are lame, but will work.
  4. For private messages, e-mail me: dannyman@toldme.com.
  5. I will not spam you, and I will not publish or share your e-mail address.