ProfinetConnector/profinet_stack/p-net/samples/pn_shm_tool/test.sh

123 lines
2.1 KiB
Bash
Raw Normal View History

#!/bin/sh
echo "Sanity test of pn_shm_tool."
# Create a shared memory area for test
f="shm_test_2"
echo "Creating /dev/shm/$f for test"
$(./pn_shm_tool -c "$f" -s 4)
# 1 Verify correct size of data
data_in="abcd"
echo "Test data: $data_in"
$(echo -n -e "$data_in" | ./pn_shm_tool -w "$f")
data_out=$(./pn_shm_tool -r "$f")
echo "Data out: $data_out"
if [ "$data_out" != "$data_in" ]; then
echo "Error"
exit 1
fi
# 2 Verify correct too small input data
data_in="ABC"
echo "Test data: $data_in"
$(echo -n -e "$data_in" | ./pn_shm_tool -w "$f")
data_out=$(./pn_shm_tool -r "$f")
echo "Data out: $data_out"
# First three bytes changed. Last byte keeps value
if [ "$data_out" != "ABCd" ]; then
echo "Error"
exit 1
fi
# 3 Verify correct too large input data
data_in="123456"
echo "Test data: $data_in"
$(echo -n -e "$data_in" | ./pn_shm_tool -w "$f")
data_out=$(./pn_shm_tool -r "$f")
echo "Data out: $data_out"
# All bytes changed. Size unchanged
if [ "$data_out" != "1234" ]; then
echo "Error"
exit 1
fi
# 4 faulty parameter
echo "Testing invalid parameter:"
show_cmd=$(./pn_shm_tool -d "$f")
ret_val=$?
echo " "
if [ $ret_val -ne 1 ]; then
echo "Error"
exit 1
fi
# 5 Verify reading bit
data_in="1234"
echo "Test data: $data_in"
echo "The stored data as ASCII: 0x31 0x32 0x33 0x34"
$(echo -n -e "$data_in" | ./pn_shm_tool -w "$f")
data_out=$(./pn_shm_tool -b "$f" -n 0)
ret_val=$?
if [ $ret_val -ne 0 ]; then
echo "Error when reading 0: Wrong exit code"
exit 1
fi
if [ "$data_out" != "1" ]; then
echo "Error reading bit 0: Wrong value"
exit 1
fi
data_out=$(./pn_shm_tool -b "$f" -n 1)
if [ "$data_out" != "0" ]; then
echo "Error reading bit 1"
exit 1
fi
data_out=$(./pn_shm_tool -b "$f" -n 2)
if [ "$data_out" != "0" ]; then
echo "Error reading bit 2"
exit 1
fi
data_out=$(./pn_shm_tool -b "$f" -n 3)
if [ "$data_out" != "0" ]; then
echo "Error reading bit 3"
exit 1
fi
# 6 faulty parameter to read bit
echo "Testing invalid parameter:"
data_out=$(./pn_shm_tool -b "$f" -n 32)
ret_val=$?
echo " "
if [ $ret_val -ne 1 ]; then
echo "Error"
exit 1
fi
echo "OK, test passed"