#!/bin/sh

# Functionality:
# The EEPROM is write protected. The actual used i2c driver in the kernel
# only supports reading on the EEPROM. 
# The test reads all EEPROM block contents. Each block should not be
# empty. This will be checked. If all eight blocks are read as not-empty,
# test passes.

# Hint: "ori" = ORIginal; "rb" = ReadBack; "res" = RESult; "err" = ERRor

#-----------------------------------------------------------------------------
# PREPERATIONS
#-----------------------------------------------------------------------------

# Make shure that result Directory exists
if [ ! -d /test/result ]
then
    mkdir /test/result
fi

# Make shure that result file of Test does NOT exists
if [ -s /test/result/eeprom.res ]
then
    rm /test/result/eeprom.res
fi

# Make shure that error file of Test does NOT exists
if [ -s /test/result/eeprom.err ]
then
    rm /test/result/eeprom.err
fi

# Make shure that Original file of Test does NOT exists
if [ -s /test/result/eeprom.ori ]
then
    rm /test/result/eeprom.ori
fi

# Make shure that readback file of Test does NOT exists
if [ -s /test/result/eeprom.rb ]
then
    rm /test/result/eeprom.rb
fi

#-----------------------------------------------------------------------------
# TEST
#-----------------------------------------------------------------------------

if [ ! -d /sys/bus/i2c/devices/0-0050 ]
then
    # First Block in EEPROM not available - Write Message to result file
    echo "FIRST Block unavailable" >>  /test/result/eeprom.res
else
    # First Block in EEPROM available - Check Size
    if [ -s /sys/bus/i2c/devices/0-0050/eeprom ]
    then
        # File is available and its size greater zero - Test passed
        echo -e "First Block OK"
    else
        # File is not available or its size is zero - Test failed
        echo "First Block File error" >> /test/result/eeprom.res
    fi
fi

if [ ! -d /sys/bus/i2c/devices/0-0051 ]
then
    # Second Block in EEPROM not available - Write Message to result file
    echo "Second Block unavailable" >>  /test/result/eeprom.res
else
    # Second Block in EEPROM available - Check Size
    if [ -s /sys/bus/i2c/devices/0-0051/eeprom ]
    then
        # File is available and its size greater zero - Test passed
        echo -e "Second Block OK"
    else
        # File is not available or its size is zero - Test failed
        echo "Second Block File error" >> /test/result/eeprom.res
    fi
fi

if [ ! -d /sys/bus/i2c/devices/0-0052 ]
then
    # Third Block in EEPROM not available - Write Message to result file
    echo "Third Block unavailable" >>  /test/result/eeprom.res
else
    # Third Block in EEPROM available - Check Size
    if [ -s /sys/bus/i2c/devices/0-0052/eeprom ]
    then
        # File is available and its size greater zero - Test passed
        echo -e "Third Block OK"
    else
        # File is not available or its size is zero - Test failed
        echo "Third Block File error" >> /test/result/eeprom.res
    fi
fi

if [ ! -d /sys/bus/i2c/devices/0-0053 ]
then
    # Fourth Block in EEPROM not available - Write Message to result file
    echo "Fourth Block unavailable" >>  /test/result/eeprom.res
else
    # Fourth Block in EEPROM available - Check Size
    if [ -s /sys/bus/i2c/devices/0-0053/eeprom ]
    then
        # File is available and its size greater zero - Test passed
        echo -e "Fourth Block OK"
    else
        # File is not available or its size is zero - Test failed
        echo "Fourth Block File error" >> /test/result/eeprom.res
    fi
fi

if [ ! -d /sys/bus/i2c/devices/0-0054 ]
then
    # Fifth Block in EEPROM not available - Write Message to result file
    echo "Fifth Block unavailable" >>  /test/result/eeprom.res
else
    # Fifth Block in EEPROM available - Check Size
    if [ -s /sys/bus/i2c/devices/0-0054/eeprom ]
    then
        # File is available and its size greater zero - Test passed
        echo -e "Fifth Block OK"
    else
        # File is not available or its size is zero - Test failed
        echo "Fifth Block File error" >> /test/result/eeprom.res
    fi
fi

if [ ! -d /sys/bus/i2c/devices/0-0055 ]
then
    # Sixth Block in EEPROM not available - Write Message to result file
    echo "Sixth Block unavailable" >>  /test/result/eeprom.res
else
    # Sixth Block in EEPROM available - Check Size
    if [ -s /sys/bus/i2c/devices/0-0055/eeprom ]
    then
        # File is available and its size greater zero - Test passed
        echo -e "Sixth Block OK"
    else
        # File is not available or its size is zero - Test failed
        echo "Sixth Block File error" >> /test/result/eeprom.res
    fi
fi

if [ ! -d /sys/bus/i2c/devices/0-0056 ]
then
    # Seventh Block in EEPROM not available - Write Message to result file
    echo "Seventh Block unavailable" >>  /test/result/eeprom.res
else
    # Seventh Block in EEPROM available - Check Size
    if [ -s /sys/bus/i2c/devices/0-0056/eeprom ]
    then
        # File is available and its size greater zero - Test passed
        echo -e "Seventh Block OK"
    else
        # File is not available or its size is zero - Test failed
        echo "Seventh Block File error" >> /test/result/eeprom.res
    fi
fi

if [ ! -d /sys/bus/i2c/devices/0-0057 ]
then
    # Eigth Block in EEPROM not available - Write Message to result file
    echo "Eigth Block unavailable" >>  /test/result/eeprom.res
else
    # Eigth Block in EEPROM available - Check Size
    if [ -s /sys/bus/i2c/devices/0-0057/eeprom ]
    then
        # File is available and its size greater zero - Test passed
        echo -e "Eigth Block OK"
    else
        # File is not available or its size is zero - Test failed
        echo "Eigth Block File error" >> /test/result/eeprom.res
    fi
fi

#-----------------------------------------------------------------------------
# OUTPUT AND RESULT CALCULATION
#-----------------------------------------------------------------------------

# Display content of /test/result/eeprom.res
if [ -s /test/result/eeprom.res ]
then
    echo -e "\n\rContent of eeprom.res"
    cat /test/result/eeprom.res
fi
    
# Display content of /test/result/eeprom.err
if [ -s /test/result/eeprom.err ]
then
    echo -e "\n\rContent of eeprom.err"
    cat /test/result/eeprom.err
fi
    
# If comparison returned neither results nor errors, the copying and 
# comparision was successful
if [ ! -s /test/result/eeprom.res -a ! -s /test/result/eeprom.err ]

then
    # Test was successful
    echo -e "\n\rEEPROM TEST-PASSED"
        echo "EEPROM TEST-PASSED" >> /test/result/eeprom.res
else
    # Test failed
    echo -e "\n\rEEPROM TEST-FAIL"
    echo "EEPROM TEST-FAILED" >> /test/result/eeprom.res
fi 






