export plugname=darshan_stream_store
portbase=61020
DAEMONS 1

echo '{"schema":"darshan_data", "uid":99066, "exe":"/pscratch/spwalto/darshan-ldms-output/mpi-io-test","job_id":21068382,"rank":1,"ProducerName":"ec1326","file":"/pscratch/spwalto/darshan-ldms-output/mpi-io-test_pC.tmp.dat","record_id":4994957589679181304,"module":"POSIX","type":"MET","max_byte":-1,"switches":-1,"flushes":-1,"cnt":2,"op":"open","seg":[{"pt_sel":-1,"irreg_hslab":-1,"reg_hslab":-1,"ndims":-1,"npoints":-1,"off":-1,"len":-1,"start":1.986402,"dur":0.000019,"total":0.000066,"timestamp":1743618561.073590}]}' > $LDMSD_RUN/x.json
echo "" >> $LDMSD_RUN/x.json
VGARGS="--leak-check=full --show-leak-kinds=definite --track-origins=yes --trace-children=yes"
vgon
LDMSD -c 1
vgoff

ps auwx | grep ldmsd | grep -v grep

echo "run -p $port1 -a none -s darshanConnector -t json -x sock -h localhost -f $LDMSD_RUN/x.json"
SLEEP 10
for i in $(seq 1); do
        SLEEP 1
        ldmsd_stream_publish -p $port1 -a none -s darshanConnector -t json -x sock -h localhost -f $LDMSD_RUN/x.json
        echo publish done $i
done
ps guxw | grep ldmsd_stream_publish

SLEEP 10
KILL_LDMSD 1

# Number of expected messages
EXPECTED_MSGS=$(cat ${LOGDIR}/1.txt | grep "store" | wc -l)

# Full path to sos_cmd
SOS_CMD=/home/spwalto/sos/build/sos/src/sos_cmd
SOS_CONTAINER="${STOREDIR}/sos"

# Check if SOS container exists
if [ ! -d "$SOS_CONTAINER" ]; then
    echo "ERROR: SOS container not found: $SOS_CONTAINER"
    exit 1
fi

# Use sos_cmd to count entries in the darshan_data schema. subtract 1 for the "Records X/Y" line
echo "Verifying messages stored in SOS container..."
RECORD_COUNT=$(( $($SOS_CMD -C "$SOS_CONTAINER" -qS darshan_data3 -X time_job_rank | wc -l) - 1))

if ! [[ "$RECORD_COUNT" =~ ^[0-9]+$ ]]; then
    echo "ERROR: Failed to parse SOS record count. Output was: $RECORD_COUNT"
    exit 1
fi

# Compare to expected count
if [ "$RECORD_COUNT" -eq "$EXPECTED_MSGS" ]; then
    echo "SUCCESS: All $EXPECTED_MSGS messages from LDMSD log file were accounted for in the SOS container."
else
    echo "WARNING: Expected $EXPECTED_MSGS messages from ${LOGDIR}/1.txt, but found $RECORD_COUNT in SOS container."
    exit 1
fi
