test: Add 8 and update 14 files
Some checks failed
Build-Test-Publish / build (linux/amd64) (push) Failing after 22s
Build-Test-Publish / build (linux/arm64) (push) Failing after 32s
Build-Test-Publish / create-manifest (push) Has been skipped

This commit is contained in:
Your Name
2025-08-10 21:18:40 +12:00
parent 1fed086348
commit 8ab6028597
22 changed files with 1392 additions and 81 deletions

85
testing/test_simple.sh Executable file
View File

@@ -0,0 +1,85 @@
#!/bin/bash
# Simple test to verify authentication works with hashed tokens
set -euo pipefail
SERVER_PID=""
# Cleanup function
function cleanup() {
if [ -n "$SERVER_PID" ]; then
echo ""
echo "Cleaning up: Stopping server (PID: $SERVER_PID)..."
kill $SERVER_PID 2>/dev/null || true
wait $SERVER_PID 2>/dev/null || true
fi
}
# Set up trap to ensure cleanup on exit
trap cleanup EXIT INT TERM
echo "Simple authentication test with bcrypt hashes"
TEST_TOKEN="test123"
HASH=$(../output/hash_token -c 10 -q "${TEST_TOKEN}")
echo "Generated hash for '${TEST_TOKEN}': ${HASH:0:20}..."
# Create config with hashed token
cat > ~/.config/simple_object_storage/sos_config.json << EOF
{
"write_tokens": ["$HASH"],
"rate_limiting": {
"auth_rate_limit": 5,
"auth_window_seconds": 2
},
"port": 7703,
"host": "127.0.0.1"
}
EOF
# Make sure no server is running
fuser -k 7703/tcp 2>/dev/null || true
sleep 1
# Start server with hashed config
echo "Starting server with hashed token..."
../output/simple-object-server &
SERVER_PID=$!
sleep 2
# Test with plaintext token (server has hash)
echo "Testing with plaintext token against hashed config..."
RESPONSE=$(curl -s -X PUT \
-H "Authorization: Bearer ${TEST_TOKEN}" \
-F "file=@test.sh" \
-F 'metadata={"labeltags":["test:hashed"]}' \
"http://127.0.0.1:7703/upload")
if echo "$RESPONSE" | grep -q '"result":"success"'; then
echo "✓ Authentication successful"
HASH_RETURNED=$(echo "$RESPONSE" | jq -r '.hash')
# Clean up
curl -s -H "Authorization: Bearer ${TEST_TOKEN}" \
"http://127.0.0.1:7703/deleteobject?hash=${HASH_RETURNED}" > /dev/null
else
echo "✗ Authentication failed: $RESPONSE"
fi
# Test with wrong token
echo "Testing with wrong token (should fail)..."
RESPONSE=$(curl -s -X PUT \
-H "Authorization: Bearer wrongtoken" \
-F "file=@test.sh" \
-F 'metadata={"labeltags":["test:wrong"]}' \
"http://127.0.0.1:7703/upload")
if echo "$RESPONSE" | grep -q '"error"'; then
echo "✓ Invalid token correctly rejected"
else
echo "✗ Invalid token was incorrectly accepted: $RESPONSE"
fi
echo ""
echo "Test complete!"
# Cleanup will be handled by the trap