aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJán Sučan <sucanjan@fit.cvut.cz>2017-05-10 15:13:29 +0200
committerJán Sučan <sucanjan@fit.cvut.cz>2017-05-10 15:13:29 +0200
commit02e24f0f533fe904c3a5275c4060c10c38d7c17a (patch)
tree19d05c60e3d6a6782c4712de960a8f6705054063 /tests
Uvodny commit, subory su rovnake ako na CD prilozenom k vytlacenemu texu bakalarskej prace, naviac je pridany len subor LICENCIA
Diffstat (limited to 'tests')
-rwxr-xr-xtests/CMakeLists.txt41
-rwxr-xr-xtests/erase.cmake15
-rwxr-xr-xtests/functions.cmake78
-rwxr-xr-xtests/other_operations.cmake5
-rwxr-xr-xtests/read.cmake12
-rwxr-xr-xtests/st10f168/CMakeLists.txt46
-rwxr-xr-xtests/st10f168/erase/ok_b023_erased1
-rwxr-xr-xtests/st10f168/erase/ok_b0_erased1
-rwxr-xr-xtests/st10f168/erase/ok_b1_erasedbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/erase/ok_b2_erasedbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/erase/ok_b3_erasedbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/erase/ok_ones1
-rwxr-xr-xtests/st10f168/erase/zerosbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/read/ok_100003Bbin0 -> 100003 bytes
-rwxr-xr-xtests/st10f168/read/ok_1B1
-rwxr-xr-xtests/st10f168/read/ok_262144Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/read/randombin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/write/0B0
-rwxr-xr-xtests/st10f168/write/160Kbin0 -> 163840 bytes
-rwxr-xr-xtests/st10f168/write/160K_1Bbin0 -> 163841 bytes
-rwxr-xr-xtests/st10f168/write/16Kbin0 -> 16384 bytes
-rwxr-xr-xtests/st10f168/write/16K_1Bbin0 -> 16385 bytes
-rwxr-xr-xtests/st10f168/write/1B1
-rwxr-xr-xtests/st10f168/write/256K_1Bbin0 -> 262145 bytes
-rwxr-xr-xtests/st10f168/write/64Kbin0 -> 65536 bytes
-rwxr-xr-xtests/st10f168/write/64K_1Bbin0 -> 65537 bytes
-rwxr-xr-xtests/st10f168/write/ok_160Kbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/write/ok_160K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/write/ok_16Kbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/write/ok_16K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/write/ok_1B1
-rwxr-xr-xtests/st10f168/write/ok_64Kbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/write/ok_64K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/write/ok_ones1
-rwxr-xr-xtests/st10f168/write/randombin0 -> 262144 bytes
-rwxr-xr-xtests/st10f168/write/zerosbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/CMakeLists.txt53
-rwxr-xr-xtests/st10f269/erase/ok_b0_erased1
-rwxr-xr-xtests/st10f269/erase/ok_b1246_erasedbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/erase/ok_b1_erasedbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/erase/ok_b2_erasedbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/erase/ok_b3_erasedbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/erase/ok_b4_erasedbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/erase/ok_b5_erasedbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/erase/ok_b6_erasedbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/erase/ok_ones1
-rwxr-xr-xtests/st10f269/erase/zerosbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/read/ok_100003Bbin0 -> 100003 bytes
-rwxr-xr-xtests/st10f269/read/ok_1B1
-rwxr-xr-xtests/st10f269/read/ok_262144Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/read/randombin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/0B0
-rwxr-xr-xtests/st10f269/write/128Kbin0 -> 131072 bytes
-rwxr-xr-xtests/st10f269/write/128K_1Bbin0 -> 131073 bytes
-rwxr-xr-xtests/st10f269/write/16Kbin0 -> 16384 bytes
-rwxr-xr-xtests/st10f269/write/16K_1Bbin0 -> 16385 bytes
-rwxr-xr-xtests/st10f269/write/192Kbin0 -> 196608 bytes
-rwxr-xr-xtests/st10f269/write/192K_1Bbin0 -> 196609 bytes
-rwxr-xr-xtests/st10f269/write/1B1
-rwxr-xr-xtests/st10f269/write/24Kbin0 -> 24576 bytes
-rwxr-xr-xtests/st10f269/write/24K_1Bbin0 -> 24577 bytes
-rwxr-xr-xtests/st10f269/write/256K_1Bbin0 -> 262145 bytes
-rwxr-xr-xtests/st10f269/write/32Kbin0 -> 32768 bytes
-rwxr-xr-xtests/st10f269/write/32K_1Bbin0 -> 32769 bytes
-rwxr-xr-xtests/st10f269/write/64Kbin0 -> 65536 bytes
-rwxr-xr-xtests/st10f269/write/64K_1Bbin0 -> 65537 bytes
-rwxr-xr-xtests/st10f269/write/mod/backup/128K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/backup/16K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/backup/192K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/backup/24K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/backup/32K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/backup/64K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/ok/ok_128K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/ok/ok_16K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/ok/ok_192K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/ok/ok_24K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/ok/ok_32K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/ok/ok_64K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/mod/r.binbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_128Kbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_128K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_16Kbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_16K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_192Kbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_192K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_1B1
-rwxr-xr-xtests/st10f269/write/ok_24Kbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_24K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_32Kbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_32K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_64Kbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_64K_1Bbin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/ok_ones1
-rwxr-xr-xtests/st10f269/write/randombin0 -> 262144 bytes
-rwxr-xr-xtests/st10f269/write/zerosbin0 -> 262144 bytes
-rwxr-xr-xtests/write.cmake11
96 files changed, 274 insertions, 0 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100755
index 0000000..a457b14
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,41 @@
+set (TestDataDir "${CMAKE_SOURCE_DIR}/tests")
+
+add_without_config_test (NoOperation "" 1)
+add_normal_test (IdentifyMcu "ident" 0)
+# Frequency option format. Budeme testovat len format, ostatne nemame
+# ako automaticky, pretoze sa to testuje len pri nahravani firmwaru.
+add_normal_test (FrequencyFormat1 "ident -f a" 2)
+add_normal_test (FrequencyFormat2 "ident -f 2a" 2)
+add_normal_test (FrequencyFormat3 "ident -f 2-2" 2)
+add_normal_test (FrequencyFormat4 "ident -f 22" 0)
+add_normal_test (FrequencyFormat5 "ident -f 22.2" 0)
+add_normal_test (FrequencyFormat6 "ident -f 2a2,2" 2)
+add_normal_test (FrequencyFormat7 "ident -f 2a2.2" 2)
+add_normal_test (FrequencyFormat8 "ident -f -33" 2)
+add_normal_test (FrequencyFormat9 "ident -f 0" 2)
+
+add_normal_test (UnknownOperation "XUnknownOperationX" 2)
+add_write_test (MissingInputFile "" 2 "" "")
+add_read_test (MissingOutputFile "" 2 "")
+add_erase_test (UnknownEraseOption "-?" 2 "" "")
+add_read_test (UnknownReadOption "-? read.bin" 2 "")
+add_write_test (UnknownWriteOption "-? write.bin" 2 "" "")
+add_erase_test (MissingValueForOption1 "-p" 2 "" "")
+add_erase_test (MissingValueForOption2 "-s" 2 "" "")
+add_erase_test (MissingValueForOption3 "-b" 2 "" "")
+add_read_test (ReadOptionFormat "-n -1" 2 "")
+add_normal_test (ReadMultipleOutputFilenames "read read.bin read2.bin" 2)
+add_normal_test (WriteMultipleInputFilenames "write random.bin random2.bin" 2)
+add_read_test (NonExistentSerialPort "-p XNonExistentSerialPortNameX" 7 "read.bin")
+add_write_test (CanNotOpenInputFile "" 3 "" "XNonExistentInputFileX")
+
+# Try to open directory instead of unreadable file
+add_normal_test (CanNotOpenOutputFile "read -n 1 SerialPort" 3)
+add_erase_test (EraseOptionFormat1 "-b a" 2 "" "")
+add_erase_test (EraseOptionFormat2 "-b 1.2" 2 "" "")
+add_erase_test (EraseOptionFormat3 "-b 1,a" 2 "" "")
+add_erase_test (EraseOptionFormat4 "-b ,1,2" 2 "" "")
+add_erase_test (EraseOptionFormat5 "-b 1,2," 2 "" "")
+add_erase_test (EraseOptionFormat6 "-b 1,,2" 2 "" "")
+add_erase_test (EraseOptionFormat7 "-b -1,2,4,5,-1654" 6 "" "")
+add_erase_test (EraseOptionFormat8 "-b 1a" 2 "" "")
diff --git a/tests/erase.cmake b/tests/erase.cmake
new file mode 100755
index 0000000..1c27cfd
--- /dev/null
+++ b/tests/erase.cmake
@@ -0,0 +1,15 @@
+include (${TestFunctions})
+
+if (NOT "${TestFile}" STREQUAL "")
+ set (WriteArgs "write ${TestConfigOptions} ${TestFile}")
+ exec_test ("${WriteArgs}" 0)
+endif ()
+
+set (TestArgs "erase ${TestConfigOptions} ${TestArgs}")
+exec_test ("${TestArgs}" ${TestExitCode})
+
+if (NOT "${TestFile}" STREQUAL "" AND NOT "${TestBlessedFile}" STREQUAL "")
+ set (ReadArgs "read ${TestConfigOptions} erase_read.bin")
+ exec_test ("${ReadArgs}" 0)
+ compare_files (erase_read.bin ${TestBlessedFile})
+endif ()
diff --git a/tests/functions.cmake b/tests/functions.cmake
new file mode 100755
index 0000000..e902fa6
--- /dev/null
+++ b/tests/functions.cmake
@@ -0,0 +1,78 @@
+macro (M_SET_CONFIG_OPTIONS)
+ if (${SerialPortSpeed})
+ set (CONFIG_OPTIONS "${CONFIG_OPTIONS} -s ${SerialPortSpeed}")
+ endif ()
+ if (${DefaultSerialPortName})
+ set (CONFIG_OPTIONS "${CONFIG_OPTIONS} -p ${DefaultSerialPortName}")
+ endif ()
+ if (NOT "${McuCpuFrequency}" STREQUAL "")
+ set (CONFIG_OPTIONS "${CONFIG_OPTIONS} -f ${McuCpuFrequency}")
+ endif ()
+endmacro ()
+
+macro (M_ADD_TEST SCRIPT)
+ add_test(NAME ${TestNamespace}${NAME}
+ CONFIGURATIONS ${TestConfigurations}
+ COMMAND ${CMAKE_COMMAND}
+ -DTestFunctions=${CMAKE_SOURCE_DIR}/tests/functions.cmake
+ -DTestArgs=${ARGS}
+ -DTestConfigOptions=${CONFIG_OPTIONS}
+ -DTestExitCode=${EXITCODE}
+ -DTestBlessedFile=${BLESSEDFILE}
+ -DTestFile=${FILE}
+ -P ${SCRIPT}
+ )
+endmacro ()
+
+
+function (ADD_WITHOUT_CONFIG_TEST NAME ARGS EXITCODE)
+ m_add_test (${CMAKE_SOURCE_DIR}/tests/other_operations.cmake)
+endfunction ()
+
+function (ADD_NORMAL_TEST NAME ARGS EXITCODE)
+ m_set_config_options ()
+ m_add_test (${CMAKE_SOURCE_DIR}/tests/other_operations.cmake)
+endfunction ()
+
+function (ADD_ERASE_TEST NAME ARGS EXITCODE BLESSEDFILE FILE)
+ m_set_config_options ()
+ m_add_test (${CMAKE_SOURCE_DIR}/tests/erase.cmake)
+endfunction ()
+
+function (ADD_WRITE_TEST NAME ARGS EXITCODE BLESSEDFILE FILE)
+ m_set_config_options ()
+ m_add_test (${CMAKE_SOURCE_DIR}/tests/write.cmake)
+endfunction ()
+
+function (ADD_READ_TEST NAME ARGS EXITCODE FILE)
+ m_set_config_options ()
+ m_add_test (${CMAKE_SOURCE_DIR}/tests/read.cmake)
+endfunction ()
+
+
+# -------------------------------------------------------
+
+
+function (EXEC_TEST ARGS EXITCODE)
+ string (REPLACE " " ";" ARGS_LIST "${ARGS}")
+ execute_process (
+ COMMAND ${CMAKE_BINARY_DIR}/main ${ARGS_LIST}
+ RESULT_VARIABLE MAIN_RESULT
+ TIMEOUT 120
+ )
+ if (NOT ${MAIN_RESULT} EQUAL ${EXITCODE})
+ message(FATAL_ERROR "Unexpected exit code ${MAIN_RESULT}, expected ${EXITCODE}")
+ endif()
+ set (RETVAL ${MAIN_RESULT} PARENT_SCOPE)
+endfunction ()
+
+
+function(COMPARE_FILES F1 F2)
+ execute_process (
+ COMMAND ${CMAKE_COMMAND} -E compare_files ${F1} ${F2}
+ RESULT_VARIABLE CMP_RESULT
+ )
+ if(CMP_RESULT)
+ message(FATAL_ERROR "Files do not match: ${F1} ${F2}")
+ endif()
+endfunction()
diff --git a/tests/other_operations.cmake b/tests/other_operations.cmake
new file mode 100755
index 0000000..6c47577
--- /dev/null
+++ b/tests/other_operations.cmake
@@ -0,0 +1,5 @@
+include (${TestFunctions})
+
+set (TestArgs "${TestArgs} ${TestConfigOptions}")
+
+exec_test ("${TestArgs}" ${TestExitCode})
diff --git a/tests/read.cmake b/tests/read.cmake
new file mode 100755
index 0000000..4f24101
--- /dev/null
+++ b/tests/read.cmake
@@ -0,0 +1,12 @@
+include (${TestFunctions})
+
+set (TestArgs "read ${TestConfigOptions} ${TestArgs}")
+if (NOT "${TestFile}" STREQUAL "")
+ set (TestArgs "${TestArgs} read.bin")
+endif ()
+
+exec_test ("${TestArgs}" ${TestExitCode})
+
+if (NOT "${TestFile}" STREQUAL "" AND ${RETVAL} EQUAL 0)
+ compare_files (read.bin ${TestFile})
+endif ()
diff --git a/tests/st10f168/CMakeLists.txt b/tests/st10f168/CMakeLists.txt
new file mode 100755
index 0000000..aefd7c2
--- /dev/null
+++ b/tests/st10f168/CMakeLists.txt
@@ -0,0 +1,46 @@
+include (${CMAKE_SOURCE_DIR}/tests/functions.cmake)
+
+set (TestConfigurations st10f168)
+set (SerialPortSpeed 57600)
+set (McuCpuFrequency 22.1)
+set (TestNamespace 168_)
+
+add_without_config_test (MissingFrequencyOptionForIdent "ident -s ${SerialPortSpeed}" 0)
+add_without_config_test (MissingFrequencyOption "erase -s ${SerialPortSpeed}" 6)
+
+include (${CMAKE_SOURCE_DIR}/tests/CMakeLists.txt)
+
+set (TestDataDir "${CMAKE_SOURCE_DIR}/tests/st10f168/erase")
+
+add_erase_test (EraseWhole "" 0 ${TestDataDir}/ok_ones ${TestDataDir}/zeros)
+add_erase_test (EraseBlock0 "-b 0" 0 ${TestDataDir}/ok_b0_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlock1 "-b 1" 0 ${TestDataDir}/ok_b1_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlock2 "-b 2" 0 ${TestDataDir}/ok_b2_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlock3 "-b 3" 0 ${TestDataDir}/ok_b3_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlocks023 "-b 3,0,2" 0 ${TestDataDir}/ok_b023_erased ${TestDataDir}/zeros)
+
+set (TestDataDir "${CMAKE_SOURCE_DIR}/tests/st10f168/write")
+
+add_write_test (WriteWhole1 "" 0 ${TestDataDir}/random ${TestDataDir}/random)
+add_write_test (WriteZeros "" 0 ${TestDataDir}/zeros ${TestDataDir}/zeros)
+add_write_test (Write0B "-e" 6 ${TestDataDir}/ok_ones ${TestDataDir}/0B)
+add_write_test (Write1B "" 0 ${TestDataDir}/ok_1B ${TestDataDir}/1B)
+# Tests of automatic block erasing
+add_write_test (WriteZeros2 "" 0 ${TestDataDir}/zeros ${TestDataDir}/zeros)
+add_write_test (Write16K+Progress "-g" 0 ${TestDataDir}/ok_16K ${TestDataDir}/16K)
+add_write_test (Write16K_1B "" 0 ${TestDataDir}/ok_16K_1B ${TestDataDir}/16K_1B)
+add_write_test (Write64K "" 0 ${TestDataDir}/ok_64K ${TestDataDir}/64K)
+add_write_test (Write64K_1B "" 0 ${TestDataDir}/ok_64K_1B ${TestDataDir}/64K_1B)
+add_write_test (Write160K "" 0 ${TestDataDir}/ok_160K ${TestDataDir}/160K)
+add_write_test (Write160K_1B+Progress "-g" 0 ${TestDataDir}/ok_160K_1B ${TestDataDir}/160K_1B)
+# Test of write over size and erasing blocks with mas 0x00 (no block)
+add_write_test (Write256K_1B "" 6 ${TestDataDir}/ok_160K_1B ${TestDataDir}/256K_1B)
+
+set (TestDataDir "${CMAKE_SOURCE_DIR}/tests/st10f168/read")
+
+add_write_test (ReadWriteRandom "" 0 ${TestDataDir}/random ${TestDataDir}/random)
+add_read_test (Read0B "-n 0" 6 "X")
+add_read_test (Read256K_1B "-n 262145" 6 "X")
+add_read_test (Read1B+Progress "-g -n 1" 0 ${TestDataDir}/ok_1B)
+add_read_test (Read100003B "-n 100003" 0 ${TestDataDir}/ok_100003B)
+add_read_test (Read262144B+Progress "-g -n 262144" 0 ${TestDataDir}/ok_262144B)
diff --git a/tests/st10f168/erase/ok_b023_erased b/tests/st10f168/erase/ok_b023_erased
new file mode 100755
index 0000000..d96179f
--- /dev/null
+++ b/tests/st10f168/erase/ok_b023_erased
@@ -0,0 +1 @@
+
diff --git a/tests/st10f168/erase/ok_b0_erased b/tests/st10f168/erase/ok_b0_erased
new file mode 100755
index 0000000..95e0f78
--- /dev/null
+++ b/tests/st10f168/erase/ok_b0_erased
@@ -0,0 +1 @@
+
diff --git a/tests/st10f168/erase/ok_b1_erased b/tests/st10f168/erase/ok_b1_erased
new file mode 100755
index 0000000..7f23cd4
--- /dev/null
+++ b/tests/st10f168/erase/ok_b1_erased
Binary files differ
diff --git a/tests/st10f168/erase/ok_b2_erased b/tests/st10f168/erase/ok_b2_erased
new file mode 100755
index 0000000..37b9128
--- /dev/null
+++ b/tests/st10f168/erase/ok_b2_erased
Binary files differ
diff --git a/tests/st10f168/erase/ok_b3_erased b/tests/st10f168/erase/ok_b3_erased
new file mode 100755
index 0000000..252a4b1
--- /dev/null
+++ b/tests/st10f168/erase/ok_b3_erased
Binary files differ
diff --git a/tests/st10f168/erase/ok_ones b/tests/st10f168/erase/ok_ones
new file mode 100755
index 0000000..7145947
--- /dev/null
+++ b/tests/st10f168/erase/ok_ones
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/tests/st10f168/erase/zeros b/tests/st10f168/erase/zeros
new file mode 100755
index 0000000..6d23118
--- /dev/null
+++ b/tests/st10f168/erase/zeros
Binary files differ
diff --git a/tests/st10f168/read/ok_100003B b/tests/st10f168/read/ok_100003B
new file mode 100755
index 0000000..23885fd
--- /dev/null
+++ b/tests/st10f168/read/ok_100003B
Binary files differ
diff --git a/tests/st10f168/read/ok_1B b/tests/st10f168/read/ok_1B
new file mode 100755
index 0000000..080c324
--- /dev/null
+++ b/tests/st10f168/read/ok_1B
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/tests/st10f168/read/ok_262144B b/tests/st10f168/read/ok_262144B
new file mode 100755
index 0000000..2f8fd38
--- /dev/null
+++ b/tests/st10f168/read/ok_262144B
Binary files differ
diff --git a/tests/st10f168/read/random b/tests/st10f168/read/random
new file mode 100755
index 0000000..2f8fd38
--- /dev/null
+++ b/tests/st10f168/read/random
Binary files differ
diff --git a/tests/st10f168/write/0B b/tests/st10f168/write/0B
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/tests/st10f168/write/0B
diff --git a/tests/st10f168/write/160K b/tests/st10f168/write/160K
new file mode 100755
index 0000000..9f1ca19
--- /dev/null
+++ b/tests/st10f168/write/160K
Binary files differ
diff --git a/tests/st10f168/write/160K_1B b/tests/st10f168/write/160K_1B
new file mode 100755
index 0000000..897a312
--- /dev/null
+++ b/tests/st10f168/write/160K_1B
Binary files differ
diff --git a/tests/st10f168/write/16K b/tests/st10f168/write/16K
new file mode 100755
index 0000000..8642f9c
--- /dev/null
+++ b/tests/st10f168/write/16K
Binary files differ
diff --git a/tests/st10f168/write/16K_1B b/tests/st10f168/write/16K_1B
new file mode 100755
index 0000000..bd3999a
--- /dev/null
+++ b/tests/st10f168/write/16K_1B
Binary files differ
diff --git a/tests/st10f168/write/1B b/tests/st10f168/write/1B
new file mode 100755
index 0000000..79b7e4b
--- /dev/null
+++ b/tests/st10f168/write/1B
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/tests/st10f168/write/256K_1B b/tests/st10f168/write/256K_1B
new file mode 100755
index 0000000..a17fc91
--- /dev/null
+++ b/tests/st10f168/write/256K_1B
Binary files differ
diff --git a/tests/st10f168/write/64K b/tests/st10f168/write/64K
new file mode 100755
index 0000000..6121083
--- /dev/null
+++ b/tests/st10f168/write/64K
Binary files differ
diff --git a/tests/st10f168/write/64K_1B b/tests/st10f168/write/64K_1B
new file mode 100755
index 0000000..c7a82fc
--- /dev/null
+++ b/tests/st10f168/write/64K_1B
Binary files differ
diff --git a/tests/st10f168/write/ok_160K b/tests/st10f168/write/ok_160K
new file mode 100755
index 0000000..45973ac
--- /dev/null
+++ b/tests/st10f168/write/ok_160K
Binary files differ
diff --git a/tests/st10f168/write/ok_160K_1B b/tests/st10f168/write/ok_160K_1B
new file mode 100755
index 0000000..16380d7
--- /dev/null
+++ b/tests/st10f168/write/ok_160K_1B
Binary files differ
diff --git a/tests/st10f168/write/ok_16K b/tests/st10f168/write/ok_16K
new file mode 100755
index 0000000..045c3b2
--- /dev/null
+++ b/tests/st10f168/write/ok_16K
Binary files differ
diff --git a/tests/st10f168/write/ok_16K_1B b/tests/st10f168/write/ok_16K_1B
new file mode 100755
index 0000000..6494471
--- /dev/null
+++ b/tests/st10f168/write/ok_16K_1B
Binary files differ
diff --git a/tests/st10f168/write/ok_1B b/tests/st10f168/write/ok_1B
new file mode 100755
index 0000000..6b839e2
--- /dev/null
+++ b/tests/st10f168/write/ok_1B
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/tests/st10f168/write/ok_64K b/tests/st10f168/write/ok_64K
new file mode 100755
index 0000000..d27151e
--- /dev/null
+++ b/tests/st10f168/write/ok_64K
Binary files differ
diff --git a/tests/st10f168/write/ok_64K_1B b/tests/st10f168/write/ok_64K_1B
new file mode 100755
index 0000000..7ea0894
--- /dev/null
+++ b/tests/st10f168/write/ok_64K_1B
Binary files differ
diff --git a/tests/st10f168/write/ok_ones b/tests/st10f168/write/ok_ones
new file mode 100755
index 0000000..7145947
--- /dev/null
+++ b/tests/st10f168/write/ok_ones
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/tests/st10f168/write/random b/tests/st10f168/write/random
new file mode 100755
index 0000000..c362624
--- /dev/null
+++ b/tests/st10f168/write/random
Binary files differ
diff --git a/tests/st10f168/write/zeros b/tests/st10f168/write/zeros
new file mode 100755
index 0000000..6d23118
--- /dev/null
+++ b/tests/st10f168/write/zeros
Binary files differ
diff --git a/tests/st10f269/CMakeLists.txt b/tests/st10f269/CMakeLists.txt
new file mode 100755
index 0000000..677259c
--- /dev/null
+++ b/tests/st10f269/CMakeLists.txt
@@ -0,0 +1,53 @@
+include (${CMAKE_SOURCE_DIR}/tests/functions.cmake)
+
+set (TestConfigurations st10f269)
+set (SerialPortSpeed 230400)
+set (TestNamespace 269_)
+
+include (${CMAKE_SOURCE_DIR}/tests/CMakeLists.txt)
+
+set (TestDataDir "${CMAKE_SOURCE_DIR}/tests/st10f269/erase")
+
+add_normal_test (IgnoreFrequencyOpt "ident -f 22.1" 0)
+
+add_erase_test (EraseWhole "" 0 ${TestDataDir}/ok_ones ${TestDataDir}/zeros)
+add_erase_test (EraseBlock0 "-b 0" 0 ${TestDataDir}/ok_b0_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlock1 "-b 1" 0 ${TestDataDir}/ok_b1_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlock2 "-b 2" 0 ${TestDataDir}/ok_b2_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlock3 "-b 3" 0 ${TestDataDir}/ok_b3_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlock4 "-b 4" 0 ${TestDataDir}/ok_b4_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlock5 "-b 5" 0 ${TestDataDir}/ok_b5_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlock6 "-b 6" 0 ${TestDataDir}/ok_b6_erased ${TestDataDir}/zeros)
+add_erase_test (EraseBlocks1246 "-b 2,4,1,6" 0 ${TestDataDir}/ok_b1246_erased ${TestDataDir}/zeros)
+
+set (TestDataDir "${CMAKE_SOURCE_DIR}/tests/st10f269/write")
+
+add_write_test (WriteWhole1 "" 0 ${TestDataDir}/random ${TestDataDir}/random)
+add_write_test (WriteZeros "" 0 ${TestDataDir}/zeros ${TestDataDir}/zeros)
+add_write_test (Write0B "-e" 6 ${TestDataDir}/ok_ones ${TestDataDir}/0B)
+add_write_test (Write1B "" 0 ${TestDataDir}/ok_1B ${TestDataDir}/1B)
+# Tests of automatic block erasing
+add_write_test (WriteZeros2 "" 0 ${TestDataDir}/zeros ${TestDataDir}/zeros)
+add_write_test (Write16K "" 0 ${TestDataDir}/ok_16K ${TestDataDir}/16K)
+add_write_test (Write16K_1B "" 0 ${TestDataDir}/ok_16K_1B ${TestDataDir}/16K_1B)
+add_write_test (Write24K "" 0 ${TestDataDir}/ok_24K ${TestDataDir}/24K)
+add_write_test (Write24K_1B "" 0 ${TestDataDir}/ok_24K_1B ${TestDataDir}/24K_1B)
+add_write_test (Write32K+Progress "-g" 0 ${TestDataDir}/ok_32K ${TestDataDir}/32K)
+add_write_test (Write32K_1B "" 0 ${TestDataDir}/ok_32K_1B ${TestDataDir}/32K_1B)
+add_write_test (Write64K "" 0 ${TestDataDir}/ok_64K ${TestDataDir}/64K)
+add_write_test (Write64K_1B "" 0 ${TestDataDir}/ok_64K_1B ${TestDataDir}/64K_1B)
+add_write_test (Write128K "" 0 ${TestDataDir}/ok_128K ${TestDataDir}/128K)
+add_write_test (Write128K_1B+Progress "-g" 0 ${TestDataDir}/ok_128K_1B ${TestDataDir}/128K_1B)
+add_write_test (Write192K "" 0 ${TestDataDir}/ok_192K ${TestDataDir}/192K)
+add_write_test (Write192K_1B "" 0 ${TestDataDir}/ok_192K_1B ${TestDataDir}/192K_1B)
+# Test of write over size and erasing blocks with mas 0x00 (no block)
+add_write_test (Write256K_1B "" 6 ${TestDataDir}/ok_192K_1B ${TestDataDir}/256K_1B)
+
+set (TestDataDir "${CMAKE_SOURCE_DIR}/tests/st10f269/read")
+
+add_write_test (ReadWriteRandom "" 0 ${TestDataDir}/random ${TestDataDir}/random)
+add_read_test (Read0B "-n 0" 6 "X")
+add_read_test (Read256K_1B "-n 262145" 6 "X")
+add_read_test (Read1B+Progress "-g -n 1" 0 ${TestDataDir}/ok_1B)
+add_read_test (Read100003B "-n 100003" 0 ${TestDataDir}/ok_100003B)
+add_read_test (Read262144B+Progress "-g -n 262144" 0 ${TestDataDir}/ok_262144B)
diff --git a/tests/st10f269/erase/ok_b0_erased b/tests/st10f269/erase/ok_b0_erased
new file mode 100755
index 0000000..95e0f78
--- /dev/null
+++ b/tests/st10f269/erase/ok_b0_erased
@@ -0,0 +1 @@
+
diff --git a/tests/st10f269/erase/ok_b1246_erased b/tests/st10f269/erase/ok_b1246_erased
new file mode 100755
index 0000000..0c7ec6e
--- /dev/null
+++ b/tests/st10f269/erase/ok_b1246_erased
Binary files differ
diff --git a/tests/st10f269/erase/ok_b1_erased b/tests/st10f269/erase/ok_b1_erased
new file mode 100755
index 0000000..d19e238
--- /dev/null
+++ b/tests/st10f269/erase/ok_b1_erased
Binary files differ
diff --git a/tests/st10f269/erase/ok_b2_erased b/tests/st10f269/erase/ok_b2_erased
new file mode 100755
index 0000000..c6dced9
--- /dev/null
+++ b/tests/st10f269/erase/ok_b2_erased
Binary files differ
diff --git a/tests/st10f269/erase/ok_b3_erased b/tests/st10f269/erase/ok_b3_erased
new file mode 100755
index 0000000..19fccaf
--- /dev/null
+++ b/tests/st10f269/erase/ok_b3_erased
Binary files differ
diff --git a/tests/st10f269/erase/ok_b4_erased b/tests/st10f269/erase/ok_b4_erased
new file mode 100755
index 0000000..ef74ce9
--- /dev/null
+++ b/tests/st10f269/erase/ok_b4_erased
Binary files differ
diff --git a/tests/st10f269/erase/ok_b5_erased b/tests/st10f269/erase/ok_b5_erased
new file mode 100755
index 0000000..354977e
--- /dev/null
+++ b/tests/st10f269/erase/ok_b5_erased
Binary files differ
diff --git a/tests/st10f269/erase/ok_b6_erased b/tests/st10f269/erase/ok_b6_erased
new file mode 100755
index 0000000..8299aa6
--- /dev/null
+++ b/tests/st10f269/erase/ok_b6_erased
Binary files differ
diff --git a/tests/st10f269/erase/ok_ones b/tests/st10f269/erase/ok_ones
new file mode 100755
index 0000000..7145947
--- /dev/null
+++ b/tests/st10f269/erase/ok_ones
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/tests/st10f269/erase/zeros b/tests/st10f269/erase/zeros
new file mode 100755
index 0000000..6d23118
--- /dev/null
+++ b/tests/st10f269/erase/zeros
Binary files differ
diff --git a/tests/st10f269/read/ok_100003B b/tests/st10f269/read/ok_100003B
new file mode 100755
index 0000000..23885fd
--- /dev/null
+++ b/tests/st10f269/read/ok_100003B
Binary files differ
diff --git a/tests/st10f269/read/ok_1B b/tests/st10f269/read/ok_1B
new file mode 100755
index 0000000..080c324
--- /dev/null
+++ b/tests/st10f269/read/ok_1B
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/tests/st10f269/read/ok_262144B b/tests/st10f269/read/ok_262144B
new file mode 100755
index 0000000..2f8fd38
--- /dev/null
+++ b/tests/st10f269/read/ok_262144B
Binary files differ
diff --git a/tests/st10f269/read/random b/tests/st10f269/read/random
new file mode 100755
index 0000000..2f8fd38
--- /dev/null
+++ b/tests/st10f269/read/random
Binary files differ
diff --git a/tests/st10f269/write/0B b/tests/st10f269/write/0B
new file mode 100755
index 0000000..e69de29
--- /dev/null
+++ b/tests/st10f269/write/0B
diff --git a/tests/st10f269/write/128K b/tests/st10f269/write/128K
new file mode 100755
index 0000000..296125e
--- /dev/null
+++ b/tests/st10f269/write/128K
Binary files differ
diff --git a/tests/st10f269/write/128K_1B b/tests/st10f269/write/128K_1B
new file mode 100755
index 0000000..c240692
--- /dev/null
+++ b/tests/st10f269/write/128K_1B
Binary files differ
diff --git a/tests/st10f269/write/16K b/tests/st10f269/write/16K
new file mode 100755
index 0000000..eb86315
--- /dev/null
+++ b/tests/st10f269/write/16K
Binary files differ
diff --git a/tests/st10f269/write/16K_1B b/tests/st10f269/write/16K_1B
new file mode 100755
index 0000000..3e2e673
--- /dev/null
+++ b/tests/st10f269/write/16K_1B
Binary files differ
diff --git a/tests/st10f269/write/192K b/tests/st10f269/write/192K
new file mode 100755
index 0000000..aeaad4e
--- /dev/null
+++ b/tests/st10f269/write/192K
Binary files differ
diff --git a/tests/st10f269/write/192K_1B b/tests/st10f269/write/192K_1B
new file mode 100755
index 0000000..6530b32
--- /dev/null
+++ b/tests/st10f269/write/192K_1B
Binary files differ
diff --git a/tests/st10f269/write/1B b/tests/st10f269/write/1B
new file mode 100755
index 0000000..79b7e4b
--- /dev/null
+++ b/tests/st10f269/write/1B
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/tests/st10f269/write/24K b/tests/st10f269/write/24K
new file mode 100755
index 0000000..085be42
--- /dev/null
+++ b/tests/st10f269/write/24K
Binary files differ
diff --git a/tests/st10f269/write/24K_1B b/tests/st10f269/write/24K_1B
new file mode 100755
index 0000000..56d5125
--- /dev/null
+++ b/tests/st10f269/write/24K_1B
Binary files differ
diff --git a/tests/st10f269/write/256K_1B b/tests/st10f269/write/256K_1B
new file mode 100755
index 0000000..a17fc91
--- /dev/null
+++ b/tests/st10f269/write/256K_1B
Binary files differ
diff --git a/tests/st10f269/write/32K b/tests/st10f269/write/32K
new file mode 100755
index 0000000..bf94e24
--- /dev/null
+++ b/tests/st10f269/write/32K
Binary files differ
diff --git a/tests/st10f269/write/32K_1B b/tests/st10f269/write/32K_1B
new file mode 100755
index 0000000..29353a3
--- /dev/null
+++ b/tests/st10f269/write/32K_1B
Binary files differ
diff --git a/tests/st10f269/write/64K b/tests/st10f269/write/64K
new file mode 100755
index 0000000..a658eda
--- /dev/null
+++ b/tests/st10f269/write/64K
Binary files differ
diff --git a/tests/st10f269/write/64K_1B b/tests/st10f269/write/64K_1B
new file mode 100755
index 0000000..8eed060
--- /dev/null
+++ b/tests/st10f269/write/64K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/backup/128K_1B b/tests/st10f269/write/mod/backup/128K_1B
new file mode 100755
index 0000000..492a243
--- /dev/null
+++ b/tests/st10f269/write/mod/backup/128K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/backup/16K_1B b/tests/st10f269/write/mod/backup/16K_1B
new file mode 100755
index 0000000..7e46f7f
--- /dev/null
+++ b/tests/st10f269/write/mod/backup/16K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/backup/192K_1B b/tests/st10f269/write/mod/backup/192K_1B
new file mode 100755
index 0000000..def4d66
--- /dev/null
+++ b/tests/st10f269/write/mod/backup/192K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/backup/24K_1B b/tests/st10f269/write/mod/backup/24K_1B
new file mode 100755
index 0000000..4dcd1ad
--- /dev/null
+++ b/tests/st10f269/write/mod/backup/24K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/backup/32K_1B b/tests/st10f269/write/mod/backup/32K_1B
new file mode 100755
index 0000000..65d9f6d
--- /dev/null
+++ b/tests/st10f269/write/mod/backup/32K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/backup/64K_1B b/tests/st10f269/write/mod/backup/64K_1B
new file mode 100755
index 0000000..1a1e997
--- /dev/null
+++ b/tests/st10f269/write/mod/backup/64K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/ok/ok_128K_1B b/tests/st10f269/write/mod/ok/ok_128K_1B
new file mode 100755
index 0000000..2e6b6e5
--- /dev/null
+++ b/tests/st10f269/write/mod/ok/ok_128K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/ok/ok_16K_1B b/tests/st10f269/write/mod/ok/ok_16K_1B
new file mode 100755
index 0000000..af32479
--- /dev/null
+++ b/tests/st10f269/write/mod/ok/ok_16K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/ok/ok_192K_1B b/tests/st10f269/write/mod/ok/ok_192K_1B
new file mode 100755
index 0000000..f732165
--- /dev/null
+++ b/tests/st10f269/write/mod/ok/ok_192K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/ok/ok_24K_1B b/tests/st10f269/write/mod/ok/ok_24K_1B
new file mode 100755
index 0000000..883e4d5
--- /dev/null
+++ b/tests/st10f269/write/mod/ok/ok_24K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/ok/ok_32K_1B b/tests/st10f269/write/mod/ok/ok_32K_1B
new file mode 100755
index 0000000..a6415e4
--- /dev/null
+++ b/tests/st10f269/write/mod/ok/ok_32K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/ok/ok_64K_1B b/tests/st10f269/write/mod/ok/ok_64K_1B
new file mode 100755
index 0000000..e7f7433
--- /dev/null
+++ b/tests/st10f269/write/mod/ok/ok_64K_1B
Binary files differ
diff --git a/tests/st10f269/write/mod/r.bin b/tests/st10f269/write/mod/r.bin
new file mode 100755
index 0000000..0a11c71
--- /dev/null
+++ b/tests/st10f269/write/mod/r.bin
Binary files differ
diff --git a/tests/st10f269/write/ok_128K b/tests/st10f269/write/ok_128K
new file mode 100755
index 0000000..4b32c68
--- /dev/null
+++ b/tests/st10f269/write/ok_128K
Binary files differ
diff --git a/tests/st10f269/write/ok_128K_1B b/tests/st10f269/write/ok_128K_1B
new file mode 100755
index 0000000..2e6b6e5
--- /dev/null
+++ b/tests/st10f269/write/ok_128K_1B
Binary files differ
diff --git a/tests/st10f269/write/ok_16K b/tests/st10f269/write/ok_16K
new file mode 100755
index 0000000..247e716
--- /dev/null
+++ b/tests/st10f269/write/ok_16K
Binary files differ
diff --git a/tests/st10f269/write/ok_16K_1B b/tests/st10f269/write/ok_16K_1B
new file mode 100755
index 0000000..af32479
--- /dev/null
+++ b/tests/st10f269/write/ok_16K_1B
Binary files differ
diff --git a/tests/st10f269/write/ok_192K b/tests/st10f269/write/ok_192K
new file mode 100755
index 0000000..fcd454b
--- /dev/null
+++ b/tests/st10f269/write/ok_192K
Binary files differ
diff --git a/tests/st10f269/write/ok_192K_1B b/tests/st10f269/write/ok_192K_1B
new file mode 100755
index 0000000..f732165
--- /dev/null
+++ b/tests/st10f269/write/ok_192K_1B
Binary files differ
diff --git a/tests/st10f269/write/ok_1B b/tests/st10f269/write/ok_1B
new file mode 100755
index 0000000..6b839e2
--- /dev/null
+++ b/tests/st10f269/write/ok_1B
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/tests/st10f269/write/ok_24K b/tests/st10f269/write/ok_24K
new file mode 100755
index 0000000..96bf91e
--- /dev/null
+++ b/tests/st10f269/write/ok_24K
Binary files differ
diff --git a/tests/st10f269/write/ok_24K_1B b/tests/st10f269/write/ok_24K_1B
new file mode 100755
index 0000000..883e4d5
--- /dev/null
+++ b/tests/st10f269/write/ok_24K_1B
Binary files differ
diff --git a/tests/st10f269/write/ok_32K b/tests/st10f269/write/ok_32K
new file mode 100755
index 0000000..acec7cb
--- /dev/null
+++ b/tests/st10f269/write/ok_32K
Binary files differ
diff --git a/tests/st10f269/write/ok_32K_1B b/tests/st10f269/write/ok_32K_1B
new file mode 100755
index 0000000..a6415e4
--- /dev/null
+++ b/tests/st10f269/write/ok_32K_1B
Binary files differ
diff --git a/tests/st10f269/write/ok_64K b/tests/st10f269/write/ok_64K
new file mode 100755
index 0000000..a8453c3
--- /dev/null
+++ b/tests/st10f269/write/ok_64K
Binary files differ
diff --git a/tests/st10f269/write/ok_64K_1B b/tests/st10f269/write/ok_64K_1B
new file mode 100755
index 0000000..e7f7433
--- /dev/null
+++ b/tests/st10f269/write/ok_64K_1B
Binary files differ
diff --git a/tests/st10f269/write/ok_ones b/tests/st10f269/write/ok_ones
new file mode 100755
index 0000000..7145947
--- /dev/null
+++ b/tests/st10f269/write/ok_ones
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/tests/st10f269/write/random b/tests/st10f269/write/random
new file mode 100755
index 0000000..c362624
--- /dev/null
+++ b/tests/st10f269/write/random
Binary files differ
diff --git a/tests/st10f269/write/zeros b/tests/st10f269/write/zeros
new file mode 100755
index 0000000..6d23118
--- /dev/null
+++ b/tests/st10f269/write/zeros
Binary files differ
diff --git a/tests/write.cmake b/tests/write.cmake
new file mode 100755
index 0000000..0a164f5
--- /dev/null
+++ b/tests/write.cmake
@@ -0,0 +1,11 @@
+include (${TestFunctions})
+
+set (TestArgs "write ${TestConfigOptions} ${TestArgs} ${TestFile}")
+set (ReadArgs "read ${TestConfigOptions} write_read.bin")
+
+exec_test ("${TestArgs}" ${TestExitCode})
+
+if (NOT "${TestFile}" STREQUAL "" AND NOT "${TestBlessedFile}" STREQUAL "")
+ exec_test ("${ReadArgs}" 0)
+ compare_files (write_read.bin ${TestBlessedFile})
+endif ()