reorganize and expand save file tests
This commit is contained in:
+11
-24
@@ -123,36 +123,23 @@ endif()
|
||||
|
||||
enable_testing()
|
||||
|
||||
file(GLOB TestCases ${CMAKE_SOURCE_DIR}/tests/*.test.txt)
|
||||
file(GLOB LogTestCases ${CMAKE_SOURCE_DIR}/tests/*.test.txt)
|
||||
|
||||
foreach(TestCase IN ITEMS ${TestCases})
|
||||
foreach(LogTestCase IN ITEMS ${LogTestCases})
|
||||
add_test(
|
||||
NAME ${TestCase}
|
||||
NAME ${LogTestCase}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_BINARY_DIR}/newserv replay-log ${TestCase} --config=${CMAKE_SOURCE_DIR}/tests/config.json --require-basic-credentials)
|
||||
COMMAND ${CMAKE_BINARY_DIR}/newserv replay-log ${LogTestCase} --config=${CMAKE_SOURCE_DIR}/tests/config.json --require-basic-credentials)
|
||||
endforeach()
|
||||
|
||||
add_test(
|
||||
NAME "compression-prs"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/tests/test-compression.sh prs ${CMAKE_BINARY_DIR}/newserv)
|
||||
add_test(
|
||||
NAME "compression-bc0"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/tests/test-compression.sh bc0 ${CMAKE_BINARY_DIR}/newserv)
|
||||
file(GLOB ScriptTestCases ${CMAKE_SOURCE_DIR}/tests/*.test.sh)
|
||||
|
||||
add_test(
|
||||
NAME "decode-vms"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/tests/test-decode-vms.sh ${CMAKE_BINARY_DIR}/newserv)
|
||||
add_test(
|
||||
NAME "decode-gci"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/tests/test-decode-gci.sh ${CMAKE_BINARY_DIR}/newserv)
|
||||
add_test(
|
||||
NAME "decode-pc"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/tests/test-decode-pc.sh ${CMAKE_BINARY_DIR}/newserv)
|
||||
foreach(ScriptTestCase IN ITEMS ${ScriptTestCases})
|
||||
add_test(
|
||||
NAME ${ScriptTestCase}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMMAND ${ScriptTestCase} ${CMAKE_BINARY_DIR}/newserv)
|
||||
endforeach()
|
||||
|
||||
# Installation configuration
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
./newserv decrypt-gci-save --sys=8P-GPSE-PSO3_SYSTEM.gci 8P-GPSE-PSO3_CHARACTER.gci
|
||||
./newserv decrypt-gci-save --sys=8P-GPSE-PSO3_SYSTEM.gci 8P-GPSE-PSO3_GUILDCARD.gci
|
||||
./newserv decrypt-gci-save --sys=8P-GPOE-PSO_SYSTEM.gci 8P-GPOE-PSO_CHARACTER.gci
|
||||
./newserv decrypt-gci-save --sys=8P-GPOE-PSO_SYSTEM.gci 8P-GPOE-PSO_GUILDCARD.gci
|
||||
+1
-2
@@ -1004,8 +1004,7 @@ int main(int argc, char** argv) {
|
||||
*reinterpret_cast<StructT*>(data.data() + data_start_offset) = decrypted;
|
||||
} else {
|
||||
const auto& s = r.get<StructT>();
|
||||
auto encrypted = encrypt_fixed_size_data_section_t<StructT, true>(
|
||||
s, round1_seed);
|
||||
auto encrypted = encrypt_fixed_size_data_section_t<StructT, true>(s, round1_seed);
|
||||
if (data_start_offset + encrypted.size() > data.size()) {
|
||||
throw runtime_error("encrypted result exceeds file size");
|
||||
}
|
||||
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
./tests/compression.sh bc0 "$1"
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
./tests/compression.sh prs "$1"
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
EXECUTABLE="$1"
|
||||
if [ "$EXECUTABLE" == "" ]; then
|
||||
EXECUTABLE="./newserv"
|
||||
fi
|
||||
|
||||
DIR="tests/saves-gci-quest"
|
||||
|
||||
echo "... decode $DIR/quest-ep3.gci"
|
||||
$EXECUTABLE decode-gci $DIR/quest-ep3.gci
|
||||
diff $DIR/quest-ep3.dec $DIR/quest-ep3.gci.dec
|
||||
echo "... decode $DIR/quest-unencrypted.gci"
|
||||
$EXECUTABLE decode-gci $DIR/quest-unencrypted.gci
|
||||
diff $DIR/quest-unencrypted.dec $DIR/quest-unencrypted.gci.dec
|
||||
echo "... decode $DIR/quest-with-key.gci"
|
||||
$EXECUTABLE decode-gci $DIR/quest-with-key.gci
|
||||
diff $DIR/quest-with-key.dec $DIR/quest-with-key.gci.dec
|
||||
echo "... decode $DIR/quest-without-key.gci"
|
||||
$EXECUTABLE decode-gci $DIR/quest-without-key.gci --seed=1705B11E
|
||||
diff $DIR/quest-without-key.dec $DIR/quest-without-key.gci.dec
|
||||
|
||||
echo "... clean up"
|
||||
rm -f $DIR/*.gci.dec $DIR/*.gcid.hex
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
EXECUTABLE="$1"
|
||||
if [ "$EXECUTABLE" == "" ]; then
|
||||
EXECUTABLE="./newserv"
|
||||
fi
|
||||
|
||||
DIR=tests/saves-vms-quest
|
||||
|
||||
echo "... decode $DIR/lionel-v1.vms"
|
||||
$EXECUTABLE decode-vms $DIR/lionel-v1.vms
|
||||
diff $DIR/lionel-v1.dec $DIR/lionel-v1.vms.dec
|
||||
echo "... decode $DIR/lionel-v2.vms"
|
||||
$EXECUTABLE decode-vms $DIR/lionel-v2.vms --seed=D0231610
|
||||
diff $DIR/lionel-v2.dec $DIR/lionel-v2.vms.dec
|
||||
|
||||
echo "... clean up"
|
||||
rm $DIR/*.vms.dec
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
EXECUTABLE="$1"
|
||||
if [ "$EXECUTABLE" == "" ]; then
|
||||
EXECUTABLE="./newserv"
|
||||
fi
|
||||
|
||||
DIR="tests/saves-gci"
|
||||
|
||||
echo "... decrypt Ep1&2 charfile"
|
||||
$EXECUTABLE decrypt-gci-save $DIR/8P-GPOJ-PSO_CHARACTER.gci --sys=$DIR/8P-GPOJ-PSO_SYSTEM.gci
|
||||
diff $DIR/8P-GPOJ-PSO_CHARACTER-expected.gcid $DIR/8P-GPOJ-PSO_CHARACTER.gcid
|
||||
echo "... decrypt Ep1&2 guildfile"
|
||||
$EXECUTABLE decrypt-gci-save $DIR/8P-GPOJ-PSO_GUILDCARD.gci --sys=$DIR/8P-GPOJ-PSO_SYSTEM.gci
|
||||
diff $DIR/8P-GPOJ-PSO_GUILDCARD-expected.gcid $DIR/8P-GPOJ-PSO_GUILDCARD.gcid
|
||||
|
||||
echo "... decrypt Ep3 charfile"
|
||||
$EXECUTABLE decrypt-gci-save $DIR/8P-GPSJ-PSO3_CHARACTER.gci --sys=$DIR/8P-GPSJ-PSO3_SYSTEM.gci
|
||||
diff $DIR/8P-GPSJ-PSO3_CHARACTER-expected.gcid $DIR/8P-GPSJ-PSO3_CHARACTER.gcid
|
||||
echo "... decrypt Ep3 guildfile"
|
||||
$EXECUTABLE decrypt-gci-save $DIR/8P-GPSJ-PSO3_GUILDCARD.gci --sys=$DIR/8P-GPSJ-PSO3_SYSTEM.gci
|
||||
diff $DIR/8P-GPSJ-PSO3_GUILDCARD-expected.gcid $DIR/8P-GPSJ-PSO3_GUILDCARD.gcid
|
||||
|
||||
echo "... clean up"
|
||||
rm -f $DIR/8P-GPOJ-PSO_CHARACTER.gcid $DIR/8P-GPOJ-PSO_GUILDCARD.gcid $DIR/8P-GPSJ-PSO_CHARACTER.gcid $DIR/8P-GPSJ-PSO_GUILDCARD.gcid
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
EXECUTABLE="$1"
|
||||
if [ "$EXECUTABLE" == "" ]; then
|
||||
EXECUTABLE="./newserv"
|
||||
fi
|
||||
|
||||
DIR="tests/saves-pc"
|
||||
|
||||
echo "... decrypt $DIR/pc_gud.bin"
|
||||
$EXECUTABLE decrypt-pc-save $DIR/pc_gud.bin --seed=1705B11E
|
||||
diff $DIR/pc_gud.dec $DIR/pc_gud.bin.dec
|
||||
echo "... decrypt $DIR/pc_sys.bin"
|
||||
$EXECUTABLE decrypt-pc-save $DIR/pc_sys.bin --seed=1705B11E
|
||||
diff $DIR/pc_sys.dec $DIR/pc_sys.bin.dec
|
||||
|
||||
echo "... clean up"
|
||||
rm $DIR/pc_*.bin.dec
|
||||
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,36 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
EXECUTABLE="$1"
|
||||
if [ "$EXECUTABLE" == "" ]; then
|
||||
EXECUTABLE="./newserv"
|
||||
fi
|
||||
|
||||
echo "... decode saves/quest-ep3.gci"
|
||||
$EXECUTABLE decode-gci tests/saves/quest-ep3.gci
|
||||
diff tests/saves/quest-ep3.dec tests/saves/quest-ep3.gci.dec
|
||||
echo "... decode saves/quest-unencrypted.gci"
|
||||
$EXECUTABLE decode-gci tests/saves/quest-unencrypted.gci
|
||||
diff tests/saves/quest-unencrypted.dec tests/saves/quest-unencrypted.gci.dec
|
||||
echo "... decode saves/quest-with-key.gci"
|
||||
$EXECUTABLE decode-gci tests/saves/quest-with-key.gci
|
||||
diff tests/saves/quest-with-key.dec tests/saves/quest-with-key.gci.dec
|
||||
echo "... decode saves/quest-without-key.gci"
|
||||
$EXECUTABLE decode-gci tests/saves/quest-without-key.gci --seed=1705B11E
|
||||
diff tests/saves/quest-without-key.dec tests/saves/quest-without-key.gci.dec
|
||||
|
||||
echo "... re-encrypt saves/save-charfile.gci"
|
||||
$EXECUTABLE encrypt-gci-save --sys=tests/saves/save-system.gci tests/saves/save-charfile.gcid tests/saves/save-charfile.gci
|
||||
$EXECUTABLE decrypt-gci-save --sys=tests/saves/save-system.gci tests/saves/save-charfile.gci tests/saves/save-charfile-redec.gcid
|
||||
hexdump -vC tests/saves/save-charfile.gcid > tests/saves/save-charfile.gcid.hex
|
||||
hexdump -vC tests/saves/save-charfile-redec.gcid > tests/saves/save-charfile-redec.gcid.hex
|
||||
# There should be differences on two lines: the checksum and the round2 seed
|
||||
NUM_DIFF_LINES=$(diff -y --suppress-common-lines tests/saves/save-charfile.gcid.hex tests/saves/save-charfile-redec.gcid.hex | wc -l)
|
||||
if [[ $NUM_DIFF_LINES -ne 2 ]]; then
|
||||
diff -U3 tests/saves/save-charfile.gcid.hex tests/saves/save-charfile-redec.gcid.hex
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "... clean up"
|
||||
rm tests/saves/*.gci.dec tests/saves/save-charfile.gci tests/saves/save-charfile-redec.gcid tests/saves/*.gcid.hex
|
||||
@@ -1,18 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
EXECUTABLE="$1"
|
||||
if [ "$EXECUTABLE" == "" ]; then
|
||||
EXECUTABLE="./newserv"
|
||||
fi
|
||||
|
||||
echo "... decrypt saves/pc_gud.bin"
|
||||
$EXECUTABLE decrypt-pc-save tests/saves/pc_gud.bin --seed=1705B11E
|
||||
diff tests/saves/pc_gud.dec tests/saves/pc_gud.bin.dec
|
||||
echo "... decrypt saves/pc_sys.bin"
|
||||
$EXECUTABLE decrypt-pc-save tests/saves/pc_sys.bin --seed=1705B11E
|
||||
diff tests/saves/pc_sys.dec tests/saves/pc_sys.bin.dec
|
||||
|
||||
echo "... clean up"
|
||||
rm tests/saves/pc_*.bin.dec
|
||||
@@ -1,18 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
EXECUTABLE="$1"
|
||||
if [ "$EXECUTABLE" == "" ]; then
|
||||
EXECUTABLE="./newserv"
|
||||
fi
|
||||
|
||||
echo "... decode saves/lionel-v1.vms"
|
||||
$EXECUTABLE decode-vms tests/saves/lionel-v1.vms
|
||||
diff tests/saves/lionel-v1.dec tests/saves/lionel-v1.vms.dec
|
||||
echo "... decode saves/lionel-v2.vms"
|
||||
$EXECUTABLE decode-vms tests/saves/lionel-v2.vms --seed=D0231610
|
||||
diff tests/saves/lionel-v2.dec tests/saves/lionel-v2.vms.dec
|
||||
|
||||
echo "... clean up"
|
||||
rm tests/saves/*.vms.dec
|
||||
Reference in New Issue
Block a user