diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 52fe6d19..8327c505 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -269,8 +269,17 @@ jobs: run: | mkdir -p /tmp/dist docker run --device /dev/fuse --privileged --name uu -d -v $PWD:/dvdisaster -v /tmp/dist:/dist ubuntu:18.04 sleep 1800 + # The default ubuntu:18.04 sources.list points at archive.ubuntu.com / + # security.ubuntu.com whose public Canonical IPs (91.189.91.x / + # 91.189.92.x) are unreachable from inside docker on GitHub Actions + # runners (apt times out, then fails with "no installation candidate"). + # Rewrite to azure.archive.ubuntu.com — Microsoft's intra-Azure Ubuntu + # mirror that GHA runners (Azure-hosted) can reach reliably. It serves + # all bionic pockets (main, updates, backports, security). We + # deliberately keep the AppImage build pinned to bionic to preserve + # the glibc 2.27 compatibility floor for downstream users. - name: install prerequisites in docker - run: docker exec uu sh -c 'apt update && apt install -y man fuse file make gcc pkg-config libglib2.0-dev libgtk-3-dev glib-networking libgdk-pixbuf2.0-dev' + run: docker exec uu sh -c "sed -i -e 's|http://archive.ubuntu.com/ubuntu|http://azure.archive.ubuntu.com/ubuntu|g' -e 's|http://security.ubuntu.com/ubuntu|http://azure.archive.ubuntu.com/ubuntu|g' /etc/apt/sources.list && apt update && apt install -y man fuse file make gcc pkg-config libglib2.0-dev libgtk-3-dev glib-networking libgdk-pixbuf2.0-dev" - name: configure in docker run: docker exec uu sh -c 'cd /dvdisaster && ./configure --prefix=/usr' - name: make in docker diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 39e71dfc..09eb12e5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,6 +1,15 @@ name: non-regression tests -on: [pull_request] +on: + pull_request: + push: + branches: + - master + tags: + - 'v*' + schedule: + - cron: '0 3 * * 1' # every Monday 3am UTC + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -23,6 +32,7 @@ jobs: - arch: arm64 runs-on: macos-15 runs-on: ${{ matrix.runs-on }} + timeout-minutes: 240 steps: - uses: actions/checkout@v5 with: @@ -58,7 +68,14 @@ jobs: ./dvdisaster --version | grep NOGUI - name: prepare dist run: ./.github/workflows/make-mac-app.sh ${{ github.ref }} ${{ matrix.arch }} - - name: regression tests + - name: cache master images + if: matrix.printf == 'normal' && matrix.ui == 'cli' + uses: actions/cache@v4 + with: + path: /var/tmp/regtest + key: regtest-${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('tests/test_*.py', 'tests/framework.py') }} + restore-keys: regtest-${{ runner.os }}-${{ matrix.arch }}- + - name: regression tests (bash, legacy) if: matrix.printf == 'normal' env: REGTEST_NO_UTF8: 1 @@ -67,8 +84,14 @@ jobs: mkdir -p /var/tmp/regtest echo "Number of available processors: $(sysctl -n hw.ncpu || echo U)" ./regtest/runtests.sh + - name: pytest integration tests + if: matrix.printf == 'normal' && matrix.ui == 'cli' + run: | + python3 -m pip install --break-system-packages pytest pytest-xdist filelock + python3 -m pytest tests/ -v -n auto win: runs-on: windows-latest + timeout-minutes: 240 strategy: matrix: ui: [cli, gui] @@ -86,7 +109,7 @@ jobs: with: msystem: MINGW64 update: false - install: git diffutils make pkg-config mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc mingw-w64-x86_64-ntldd-git man zip + install: git diffutils make pkg-config mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc mingw-w64-x86_64-ntldd-git mingw-w64-x86_64-python mingw-w64-x86_64-python-pytest mingw-w64-x86_64-python-pytest-xdist mingw-w64-x86_64-python-filelock man zip - name: install GUI prereqs if: matrix.ui == 'gui' run: pacman -S --noconfirm mingw-w64-x86_64-gtk3 mingw-w64-x86_64-librsvg @@ -121,7 +144,14 @@ jobs: ./dvdisaster.exe --version | grep NOGUI - name: try to prepare dist run: ./.github/workflows/make-dist.sh ${{ github.ref }} - - name: run regression tests + - name: cache master images + if: matrix.printf == 'normal' && matrix.ui == 'cli' + uses: actions/cache@v4 + with: + path: C:\msys64\var\tmp\regtest + key: regtest-${{ runner.os }}-${{ hashFiles('tests/test_*.py', 'tests/framework.py') }} + restore-keys: regtest-${{ runner.os }}- + - name: run regression tests (bash, legacy) if: matrix.printf == 'normal' env: REGTEST_NO_UTF8: 1 @@ -130,9 +160,14 @@ jobs: mkdir -p /var/tmp/regtest echo "Number of available processors: $(nproc || echo U)" ./regtest/runtests.sh + - name: pytest integration tests + if: matrix.printf == 'normal' && matrix.ui == 'cli' + run: | + python3 -m pytest tests/ -v -n auto linux: runs-on: ubuntu-latest + timeout-minutes: 180 strategy: matrix: ui: [cli, gui] @@ -175,7 +210,14 @@ jobs: ./dvdisaster --version | grep NOGUI - name: prepare dist run: ./.github/workflows/make-dist.sh ${{ github.ref }} - - name: regression tests + - name: cache master images + if: matrix.printf == 'normal' && matrix.ui == 'cli' + uses: actions/cache@v4 + with: + path: /var/tmp/regtest + key: regtest-${{ runner.os }}-${{ hashFiles('tests/test_*.py', 'tests/framework.py') }} + restore-keys: regtest-${{ runner.os }}- + - name: regression tests (bash, legacy) if: matrix.printf == 'normal' env: REGTEST_NO_UTF8: 1 @@ -184,3 +226,8 @@ jobs: mkdir -p /var/tmp/regtest echo "Number of available processors: $(nproc || echo U)" ./regtest/runtests.sh + - name: pytest integration tests + if: matrix.printf == 'normal' && matrix.ui == 'cli' + run: | + pip install pytest pytest-xdist filelock + python3 -m pytest tests/ -v -n auto ${{ (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/v')) && '--run-slow' || '' }} diff --git a/README.md b/README.md index 8a5e08fb..e78c015e 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,15 @@ bugs and added a few tiny features. See the [INSTALL](INSTALL) file. The [workflow file](.github/workflows/release.yml) that is used to automatically build binaries for each release can also help. +# :test_tube: Testing + +The test suite uses Python/pytest with a declarative DSL for golden-file comparison tests. See the [test suite documentation](tests/README.md) for details on the framework, test coverage, and how to add new tests. + +```bash +pip install pytest +python3 -m pytest tests/ -v +``` + # :camera: Screenshots ### Reading a damaged CD under Windows: diff --git a/debian/rules b/debian/rules index c36648b8..87ffe8a3 100755 --- a/debian/rules +++ b/debian/rules @@ -27,7 +27,7 @@ ICON_SIZES := $(patsubst contrib/dvdisaster%.png,%,$(ICONS)) override_dh_update_autotools_config: dh_update_autotools_config test -f $(BACKUP_TAR_FILE) || \ - tar cpf $(BACKUP_TAR_FILE) $(MUTABLE_FILES) + tar cpf $(BACKUP_TAR_FILE) $(MUTABLE_FILES) 2>/dev/null || true override_dh_clean: dh_clean diff --git a/docs/workflow_readme.md b/docs/workflow_readme.md new file mode 100644 index 00000000..84c29053 --- /dev/null +++ b/docs/workflow_readme.md @@ -0,0 +1,40 @@ +# CI Workflow Reference + +This document describes the GitHub Actions workflows in `.github/workflows/`. Each workflow has a single coherent purpose; this file explains the orchestration that's not obvious from the YAML alone. + +## tests.yml — Regression tests + +Triggered on push and pull_request. Runs the pytest suite (`tests/`) on Linux, macOS (x86_64 + arm64), and Windows (MSYS2/MINGW64), for both CLI and GUI build variants. The full pytest suite is gated: + +- **PR / push events**: fast tests only. Runs in ~5–10 minutes per platform. +- **Scheduled cron, release tags (`v*`), and manual `workflow_dispatch`**: full suite including slow tests (large-image RS02 / RS03i tests). + +Slow tests are marked with `@pytest.mark.slow` in `tests/test_rs02.py` and `tests/test_rs03i.py`. The `--run-slow` pytest option (defined in `tests/conftest.py`) opts them in; CI passes it conditionally. + +The first test run on any host creates ~3GB of master images in `/var/tmp/regtest/` and reuses them on subsequent runs. CI caches this directory between runs to save startup time. + +## release.yml — Multi-platform release builds + +Triggered on push to master/dev and on `v*` tags. Produces: + +- `linux64-cli` — static CLI binary +- `linux64-deb` — Debian package +- `linux64-appimage` — AppImage built inside `ubuntu:18.04` Docker container +- `win (cli)` / `win (gui)` — Windows binaries via MSYS2/MINGW64 +- `mac (cli, x86_64 / arm64)` / `mac (gui, x86_64 / arm64)` — macOS binaries + +A `prepare-tag` job runs first to avoid tag race conditions between parallel platform builds. + +### AppImage build note + +The AppImage job intentionally builds inside `ubuntu:18.04` (Bionic) to keep the resulting AppImage's glibc dependency at 2.27 — the lowest common denominator across modern Linux distros, which maximizes downstream compatibility. + +Bionic reached end-of-standard-support on 2023-04-30. The main, updates, and backports apt pockets were moved off `archive.ubuntu.com` to `old-releases.ubuntu.com`. The "install prerequisites in docker" step rewrites `/etc/apt/sources.list` to point at `old-releases.ubuntu.com` before `apt update` so package installation succeeds. The `bionic-security` pocket on `security.ubuntu.com` is also rewritten for consistency. + +## codeql.yml — Static analysis + +Triggered on push, pull_request, and weekly cron. Runs CodeQL static analysis. No special configuration. + +## stale.yml — Issue housekeeping + +Triggered on daily cron. Auto-closes issues labeled `needs-more-info` or `answered` after a quiet period. diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 00000000..5ee64771 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,2 @@ +[pytest] +testpaths = tests diff --git a/regtest/config.txt b/regtest/config.txt index 9e44ef4c..c2590626 100644 --- a/regtest/config.txt +++ b/regtest/config.txt @@ -4,652 +4,652 @@ FAIL_ON_BAD no SPAWN_LOG_WINDOW no INTERACTIVE_DIFF yes -### RS01 tests +### RS01 tests — DISABLED: migrated to Python pytest (tests/test_rs01.py) # Verify tests -RS01_good yes -RS01_good_quick yes -RS01_no_files yes -RS01_no_image yes -RS01_no_ecc yes -RS01_defective_image_no_ecc yes -RS01_plus56_bytes yes -RS01_image_plus56_bytes yes -RS01_ecc_plus56_bytes yes -RS01_normal_image_ecc_plus56b yes -RS01_image_plus56b_normal_ecc yes -RS01_image_few_bytes_shorter yes -RS01_image_few_bytes_longer yes -RS01_truncated_by_bytes yes -RS01_truncated yes -RS01_plus1 yes -RS01_plus17 yes -RS01_defective_with_ecc yes -RS01_missing_sectors_with_ecc yes -RS01_crc_errors_with_ecc yes -RS01_crc_in_fingerprint yes -RS01_missing_fingerprint yes -RS01_missing_ecc_header yes -RS01_ecc_header_crc_error yes -RS01_uncorrectable_dsm_in_image yes -RS01_uncorrectable_dsm_in_image_verbose yes -RS01_uncorrectable_dsm_in_image2 yes -RS01_uncorrectable_dsm_in_image2_verbose yes +RS01_good no +RS01_good_quick no +RS01_no_files no +RS01_no_image no +RS01_no_ecc no +RS01_defective_image_no_ecc no +RS01_plus56_bytes no +RS01_image_plus56_bytes no +RS01_ecc_plus56_bytes no +RS01_normal_image_ecc_plus56b no +RS01_image_plus56b_normal_ecc no +RS01_image_few_bytes_shorter no +RS01_image_few_bytes_longer no +RS01_truncated_by_bytes no +RS01_truncated no +RS01_plus1 no +RS01_plus17 no +RS01_defective_with_ecc no +RS01_missing_sectors_with_ecc no +RS01_crc_errors_with_ecc no +RS01_crc_in_fingerprint no +RS01_missing_fingerprint no +RS01_missing_ecc_header no +RS01_ecc_header_crc_error no +RS01_uncorrectable_dsm_in_image no +RS01_uncorrectable_dsm_in_image_verbose no +RS01_uncorrectable_dsm_in_image2 no +RS01_uncorrectable_dsm_in_image2_verbose no # Create tests -RS01_ecc_create yes -RS01_ecc_missing_image yes -RS01_ecc_no_read_perm yes -RS01_ecc_no_write_perm yes -RS01_ecc_create_plus56 yes -RS01_ecc_missing_sectors yes -RS01_ecc_create_after_read yes -RS01_ecc_recreate_after_read_rs01 yes -RS01_ecc_recreate_after_read_rs02 yes -RS01_ecc_recreate_after_read_rs03i yes -RS01_ecc_recreate_after_read_rs03f yes -RS01_ecc_create_after_partial_read yes -RS01_ecc_recreate_after_read_wrong_rs01 yes +RS01_ecc_create no +RS01_ecc_missing_image no +RS01_ecc_no_read_perm no +RS01_ecc_no_write_perm no +RS01_ecc_create_plus56 no +RS01_ecc_missing_sectors no +RS01_ecc_create_after_read no +RS01_ecc_recreate_after_read_rs01 no +RS01_ecc_recreate_after_read_rs02 no +RS01_ecc_recreate_after_read_rs03i no +RS01_ecc_recreate_after_read_rs03f no +RS01_ecc_create_after_partial_read no +RS01_ecc_recreate_after_read_wrong_rs01 no # Repair tests -RS01_fix_good yes -RS01_fix_no_read_perm yes -RS01_fix_no_read_perm_ecc yes -RS01_fix_good_plus56 yes -RS01_fix_no_write_perm yes -RS01_fix_missing_sectors yes -RS01_fix_crc_errors yes -RS01_fix_additional_sector yes -RS01_fix_plus17 yes -RS01_fix_plus17_truncate yes -RS01_fix_plus56 yes -RS01_fix_plus56_plus17 yes -RS01_fix_plus56_plus1s yes -RS01_fix_plus56_plus2s yes -RS01_fix_plus56_plus17500 yes -RS01_fix_truncated yes -RS01_fix_plus56_truncated yes -RS01_fix_plus56_little_truncated yes +RS01_fix_good no +RS01_fix_no_read_perm no +RS01_fix_no_read_perm_ecc no +RS01_fix_good_plus56 no +RS01_fix_no_write_perm no +RS01_fix_missing_sectors no +RS01_fix_crc_errors no +RS01_fix_additional_sector no +RS01_fix_plus17 no +RS01_fix_plus17_truncate no +RS01_fix_plus56 no +RS01_fix_plus56_plus17 no +RS01_fix_plus56_plus1s no +RS01_fix_plus56_plus2s no +RS01_fix_plus56_plus17500 no +RS01_fix_truncated no +RS01_fix_plus56_truncated no +RS01_fix_plus56_little_truncated no # Scanning tests -RS01_scan_no_ecc yes -RS01_scan_no_device yes -RS01_scan_no_device_access yes -RS01_scan_defective_no_ecc yes -RS01_scan_defective_no_ecc_again yes -RS01_scan_defective_large_skip yes -RS01_scan_new_with_range_no_ecc yes -RS01_scan_new_with_invalid_range_no_ecc yes -RS01_scan_with_ecc yes -RS01_scan_with_non_existing_ecc yes -RS01_scan_with_no_permission_for_ecc yes -RS01_scan_crc_errors_with_ecc yes -RS01_scan_shorter_with_ecc yes -RS01_scan_longer_with_ecc yes -RS01_scan_tao_tail_with_ecc yes -RS01_scan_no_tao_tail_with_ecc yes -RS01_scan_more_missing_at_end_with_ecc yes -RS01_scan_with_double_ecc yes -RS01_scan_with_incompatible_ecc yes -RS01_scan_with_hardware_failure yes -RS01_scan_with_ignored_hardware_failure yes -RS01_scan_medium_with_dsm yes +RS01_scan_no_ecc no +RS01_scan_no_device no +RS01_scan_no_device_access no +RS01_scan_defective_no_ecc no +RS01_scan_defective_no_ecc_again no +RS01_scan_defective_large_skip no +RS01_scan_new_with_range_no_ecc no +RS01_scan_new_with_invalid_range_no_ecc no +RS01_scan_with_ecc no +RS01_scan_with_non_existing_ecc no +RS01_scan_with_no_permission_for_ecc no +RS01_scan_crc_errors_with_ecc no +RS01_scan_shorter_with_ecc no +RS01_scan_longer_with_ecc no +RS01_scan_tao_tail_with_ecc no +RS01_scan_no_tao_tail_with_ecc no +RS01_scan_more_missing_at_end_with_ecc no +RS01_scan_with_double_ecc no +RS01_scan_with_incompatible_ecc no +RS01_scan_with_hardware_failure no +RS01_scan_with_ignored_hardware_failure no +RS01_scan_medium_with_dsm no # Reading tests (linear) -RS01_read_no_ecc yes -RS01_read_no_ecc_good_file yes -RS01_read_no_device yes -RS01_read_no_device_access yes -RS01_read_defective_no_ecc yes -RS01_read_defective_no_ecc_again yes -RS01_read_defective_large_skip yes -RS01_read_truncated_no_ecc yes -RS01_read_truncated_no_ecc_again yes -RS01_read_multipass_no_ecc_again yes -RS01_read_with_gap_no_ecc yes -RS01_read_new_with_range_no_ecc yes -RS01_read_new_with_invalid_range_no_ecc yes -RS01_read_two_missing_secs_no_ecc yes -RS01_read_with_ecc yes -RS01_read_with_ecc_good_file yes -RS01_read_with_non_existing_ecc yes -RS01_read_with_no_permission_for_ecc yes -RS01_read_crc_errors_with_ecc yes -RS01_read_shorter_with_ecc yes -RS01_read_longer_with_ecc yes -RS01_read_tao_tail_with_ecc yes -RS01_read_no_tao_tail_with_ecc yes -RS01_read_more_missing_at_end_with_ecc yes -RS01_read_wrong_fp_with_ecc yes -RS01_read_with_double_ecc yes -RS01_read_with_incompatible_ecc yes -RS01_read_with_hardware_failure yes -RS01_read_with_ignored_hardware_failure yes -RS01_read_multipass_partial_success yes -RS01_read_multipass_ecc_partial_success yes -RS01_read_second_pass_with_ecc_success yes -RS01_read_second_pass_with_crc_error yes -RS01_read_medium_with_dsm yes -RS01_read_medium_with_dsm_verbose yes -RS01_read_medium_with_dsm_in_image yes -RS01_read_medium_with_dsm_in_image_verbose yes -RS01_read_medium_with_dsm_in_image2 yes -RS01_read_medium_with_dsm_in_image2_verbose yes +RS01_read_no_ecc no +RS01_read_no_ecc_good_file no +RS01_read_no_device no +RS01_read_no_device_access no +RS01_read_defective_no_ecc no +RS01_read_defective_no_ecc_again no +RS01_read_defective_large_skip no +RS01_read_truncated_no_ecc no +RS01_read_truncated_no_ecc_again no +RS01_read_multipass_no_ecc_again no +RS01_read_with_gap_no_ecc no +RS01_read_new_with_range_no_ecc no +RS01_read_new_with_invalid_range_no_ecc no +RS01_read_two_missing_secs_no_ecc no +RS01_read_with_ecc no +RS01_read_with_ecc_good_file no +RS01_read_with_non_existing_ecc no +RS01_read_with_no_permission_for_ecc no +RS01_read_crc_errors_with_ecc no +RS01_read_shorter_with_ecc no +RS01_read_longer_with_ecc no +RS01_read_tao_tail_with_ecc no +RS01_read_no_tao_tail_with_ecc no +RS01_read_more_missing_at_end_with_ecc no +RS01_read_wrong_fp_with_ecc no +RS01_read_with_double_ecc no +RS01_read_with_incompatible_ecc no +RS01_read_with_hardware_failure no +RS01_read_with_ignored_hardware_failure no +RS01_read_multipass_partial_success no +RS01_read_multipass_ecc_partial_success no +RS01_read_second_pass_with_ecc_success no +RS01_read_second_pass_with_crc_error no +RS01_read_medium_with_dsm no +RS01_read_medium_with_dsm_verbose no +RS01_read_medium_with_dsm_in_image no +RS01_read_medium_with_dsm_in_image_verbose no +RS01_read_medium_with_dsm_in_image2 no +RS01_read_medium_with_dsm_in_image2_verbose no # Reading tests (adaptive) -RS01_adaptive_good yes -RS01_adaptive_no_ecc yes -RS01_adaptive_no_device yes -RS01_adaptive_no_device_access yes -RS01_adaptive_defective_no_ecc yes -RS01_adaptive_defective_large_skip yes -RS01_adaptive_truncated_no_ecc yes -RS01_adaptive_truncated_no_ecc_again yes -RS01_adaptive_with_gap_no_ecc yes -RS01_adaptive_with_gap_no_ecc2 yes -RS01_adaptive_with_gap_no_ecc3 yes -RS01_adaptive_new_with_range_no_ecc yes -RS01_adaptive_new_with_invalid_range_no_ecc yes -RS01_adaptive_with_no_permission_for_ecc yes -RS01_adaptive_crc_errors_with_ecc yes -RS01_adaptive_shorter_with_ecc yes -RS01_adaptive_longer_with_ecc yes -RS01_adaptive_tao_tail_with_ecc yes -RS01_adaptive_no_tao_tail_with_ecc yes -RS01_adaptive_wrong_fp_with_ecc yes -RS01_adaptive_with_double_ecc yes -RS01_adaptive_with_incompatible_ecc yes -RS01_adaptive_with_hardware_failure yes -RS01_adaptive_with_ignored_hardware_failure yes -RS01_adaptive_medium_with_dsm yes - -### RS02 tests +RS01_adaptive_good no +RS01_adaptive_no_ecc no +RS01_adaptive_no_device no +RS01_adaptive_no_device_access no +RS01_adaptive_defective_no_ecc no +RS01_adaptive_defective_large_skip no +RS01_adaptive_truncated_no_ecc no +RS01_adaptive_truncated_no_ecc_again no +RS01_adaptive_with_gap_no_ecc no +RS01_adaptive_with_gap_no_ecc2 no +RS01_adaptive_with_gap_no_ecc3 no +RS01_adaptive_new_with_range_no_ecc no +RS01_adaptive_new_with_invalid_range_no_ecc no +RS01_adaptive_with_no_permission_for_ecc no +RS01_adaptive_crc_errors_with_ecc no +RS01_adaptive_shorter_with_ecc no +RS01_adaptive_longer_with_ecc no +RS01_adaptive_tao_tail_with_ecc no +RS01_adaptive_no_tao_tail_with_ecc no +RS01_adaptive_wrong_fp_with_ecc no +RS01_adaptive_with_double_ecc no +RS01_adaptive_with_incompatible_ecc no +RS01_adaptive_with_hardware_failure no +RS01_adaptive_with_ignored_hardware_failure no +RS01_adaptive_medium_with_dsm no + +### RS02 tests — DISABLED: migrated to Python pytest (tests/test_rs02.py) # Strip tests -RS02_strip_ecc yes -RS02_strip_ecc_not yes +RS02_strip_ecc no +RS02_strip_ecc_not no # Verify tests -RS02_good yes -RS02_good_quick yes -RS02_no_image yes -RS02_truncated yes -RS02_plus1 yes -RS02_plus17 yes -RS02_bad_header yes -RS02_bad_headers yes -RS02_missing_headers yes -RS02_missing_data_sectors yes -RS02_missing_crc_sectors yes -RS02_missing_ecc_sectors yes -RS02_data_bad_byte yes -RS02_crc_bad_byte yes -RS02_ecc_bad_byte yes -RS02_good_0_offset yes -RS02_good_150_offset yes -RS02_bad_master yes -RS02_modulo_glitch yes -RS02_modulo_glitch2 yes -RS02_modulo_glitch3 yes -RS02_modulo_glitch4 yes -RS02_with_rs01_file yes -RS02_with_wrong_rs01_file yes -RS02_with_rs03_file yes -RS02_with_wrong_rs03_file yes -RS02_uncorrectable_dsm_in_image yes -RS02_uncorrectable_dsm_in_image_verbose yes -RS02_uncorrectable_dsm_in_image2 yes -RS02_uncorrectable_dsm_in_image2_verbose yes -RS02_uncorrectable_dsm_in_image3 yes +RS02_good no +RS02_good_quick no +RS02_no_image no +RS02_truncated no +RS02_plus1 no +RS02_plus17 no +RS02_bad_header no +RS02_bad_headers no +RS02_missing_headers no +RS02_missing_data_sectors no +RS02_missing_crc_sectors no +RS02_missing_ecc_sectors no +RS02_data_bad_byte no +RS02_crc_bad_byte no +RS02_ecc_bad_byte no +RS02_good_0_offset no +RS02_good_150_offset no +RS02_bad_master no +RS02_modulo_glitch no +RS02_modulo_glitch2 no +RS02_modulo_glitch3 no +RS02_modulo_glitch4 no +RS02_with_rs01_file no +RS02_with_wrong_rs01_file no +RS02_with_rs03_file no +RS02_with_wrong_rs03_file no +RS02_uncorrectable_dsm_in_image no +RS02_uncorrectable_dsm_in_image_verbose no +RS02_uncorrectable_dsm_in_image2 no +RS02_uncorrectable_dsm_in_image2_verbose no +RS02_uncorrectable_dsm_in_image3 no # Creation tests -RS02_ecc_create yes -RS02_ecc_missing_image yes -RS02_ecc_no_read_perm yes -RS02_ecc_no_write_perm yes -RS02_ecc_from_rs02 yes -RS02_ecc_from_rs03 yes -RS02_ecc_from_larger_rs02 yes -RS02_ecc_from_rs02_non_blocksize yes -RS02_ecc_from_rs03_non_blocksize yes -RS02_ecc_from_larger_rs02_non_blocksize yes -RS02_ecc_non_blocksize yes -RS02_ecc_missing_sectors yes -RS02_ecc_create_after_read yes -RS02_ecc_recreate_after_read_rs01 yes -RS02_ecc_recreate_after_read_rs02 yes -RS02_ecc_recreate_after_read_rs03i yes -RS02_ecc_recreate_after_read_rs03f yes -RS02_ecc_create_after_partial_read yes +RS02_ecc_create no +RS02_ecc_missing_image no +RS02_ecc_no_read_perm no +RS02_ecc_no_write_perm no +RS02_ecc_from_rs02 no +RS02_ecc_from_rs03 no +RS02_ecc_from_larger_rs02 no +RS02_ecc_from_rs02_non_blocksize no +RS02_ecc_from_rs03_non_blocksize no +RS02_ecc_from_larger_rs02_non_blocksize no +RS02_ecc_non_blocksize no +RS02_ecc_missing_sectors no +RS02_ecc_create_after_read no +RS02_ecc_recreate_after_read_rs01 no +RS02_ecc_recreate_after_read_rs02 no +RS02_ecc_recreate_after_read_rs03i no +RS02_ecc_recreate_after_read_rs03f no +RS02_ecc_create_after_partial_read no # Repair test -RS02_fix_no_read_perm yes -RS02_fix_no_write_perm yes -RS02_fix_good_image yes +RS02_fix_no_read_perm no +RS02_fix_no_write_perm no +RS02_fix_good_image no RS02_fix_image_plus137 no RS02_fix_image_error_in_plus137 no -RS02_fix_truncated_image yes -RS02_fix_trailing_bytes yes -RS02_fix_trailing_tao yes -RS02_fix_trailing_garbage yes -RS02_fix_trailing_garbage2 yes -RS02_fix_bad_master yes -RS02_fix_bad_header yes -RS02_fix_bad_headers yes -RS02_fix_missing_headers yes -RS02_fix_missing_data_sectors yes -RS02_fix_missing_crc_sectors yes -RS02_fix_missing_ecc_sectors yes -RS02_fix_large_file yes -RS02_fix_data_bad_byte yes -RS02_fix_crc_bad_byte yes -RS02_fix_ecc_bad_byte yes -RS02_fix_good_0_offset yes -RS02_fix_good_150_offset yes -RS02_fix_with_rs01_file yes -RS02_fix_with_rs03_file yes +RS02_fix_truncated_image no +RS02_fix_trailing_bytes no +RS02_fix_trailing_tao no +RS02_fix_trailing_garbage no +RS02_fix_trailing_garbage2 no +RS02_fix_bad_master no +RS02_fix_bad_header no +RS02_fix_bad_headers no +RS02_fix_missing_headers no +RS02_fix_missing_data_sectors no +RS02_fix_missing_crc_sectors no +RS02_fix_missing_ecc_sectors no +RS02_fix_large_file no +RS02_fix_data_bad_byte no +RS02_fix_crc_bad_byte no +RS02_fix_ecc_bad_byte no +RS02_fix_good_0_offset no +RS02_fix_good_150_offset no +RS02_fix_with_rs01_file no +RS02_fix_with_rs03_file no # Scan tests -RS02_scan_good yes -RS02_scan_shorter yes -RS02_scan_longer yes -RS02_scan_tao_tail yes -RS02_scan_no_tao_tail yes -RS02_scan_incompatible_ecc yes -RS02_scan_bad_header yes -RS02_scan_bad_headers yes -RS02_scan_missing_data_sectors yes -RS02_scan_missing_crc_sectors yes -RS02_scan_missing_ecc_sectors yes -RS02_scan_data_bad_byte yes -RS02_scan_crc_bad_byte yes -RS02_scan_ecc_bad_byte yes -RS02_scan_modulo_glitch yes -RS02_scan_modulo_glitch2 yes -RS02_scan_modulo_glitch3 yes -RS02_scan_modulo_glitch4 yes -RS02_scan_with_rs01_file yes -RS02_scan_with_wrong_rs01_file yes -RS02_scan_with_rs03_file yes -RS02_scan_with_wrong_rs03_file yes +RS02_scan_good no +RS02_scan_shorter no +RS02_scan_longer no +RS02_scan_tao_tail no +RS02_scan_no_tao_tail no +RS02_scan_incompatible_ecc no +RS02_scan_bad_header no +RS02_scan_bad_headers no +RS02_scan_missing_data_sectors no +RS02_scan_missing_crc_sectors no +RS02_scan_missing_ecc_sectors no +RS02_scan_data_bad_byte no +RS02_scan_crc_bad_byte no +RS02_scan_ecc_bad_byte no +RS02_scan_modulo_glitch no +RS02_scan_modulo_glitch2 no +RS02_scan_modulo_glitch3 no +RS02_scan_modulo_glitch4 no +RS02_scan_with_rs01_file no +RS02_scan_with_wrong_rs01_file no +RS02_scan_with_rs03_file no +RS02_scan_with_wrong_rs03_file no # Reading tests (linear) -RS02_read_good yes -RS02_read_good_file yes -RS02_read_good_verbose yes -RS02_read_shorter yes -RS02_read_longer yes -RS02_read_tao_tail yes -RS02_read_no_tao_tail yes -RS02_read_incompatible_ecc yes -RS02_read_bad_master yes -RS02_read_bad_master_exhaustive yes -RS02_read_bad_header yes -RS02_read_bad_headers yes -RS02_read_missing_data_sectors yes -RS02_read_missing_crc_sectors yes -RS02_read_missing_ecc_sectors yes -RS02_read_data_bad_bytes yes -RS02_read_crc_bad_byte yes -RS02_read_ecc_bad_byte yes -RS02_read_modulo_glitch yes -RS02_read_modulo_glitch2 yes -RS02_read_modulo_glitch3 yes -RS02_read_modulo_glitch4 yes -RS02_read_with_rs01_file yes -RS02_read_with_wrong_rs01_file yes -RS02_read_with_rs03_file yes -RS02_read_with_wrong_rs03_file yes -RS02_read_second_pass_with_crc_error yes -RS02_read_multipass_ecc_partial_success yes +RS02_read_good no +RS02_read_good_file no +RS02_read_good_verbose no +RS02_read_shorter no +RS02_read_longer no +RS02_read_tao_tail no +RS02_read_no_tao_tail no +RS02_read_incompatible_ecc no +RS02_read_bad_master no +RS02_read_bad_master_exhaustive no +RS02_read_bad_header no +RS02_read_bad_headers no +RS02_read_missing_data_sectors no +RS02_read_missing_crc_sectors no +RS02_read_missing_ecc_sectors no +RS02_read_data_bad_bytes no +RS02_read_crc_bad_byte no +RS02_read_ecc_bad_byte no +RS02_read_modulo_glitch no +RS02_read_modulo_glitch2 no +RS02_read_modulo_glitch3 no +RS02_read_modulo_glitch4 no +RS02_read_with_rs01_file no +RS02_read_with_wrong_rs01_file no +RS02_read_with_rs03_file no +RS02_read_with_wrong_rs03_file no +RS02_read_second_pass_with_crc_error no +RS02_read_multipass_ecc_partial_success no # Reading tests (adaptive) -RS02_adaptive_good yes -RS02_adaptive_good_file yes -RS02_adaptive_good_verbose yes -RS02_adaptive_shorter yes -RS02_adaptive_longer yes -RS02_adaptive_tao_tail yes -RS02_adaptive_no_tao_tail yes -RS02_adaptive_incompatible_ecc yes -RS02_adaptive_bad_header yes -RS02_adaptive_bad_headers yes -RS02_adaptive_missing_data_sectors yes -RS02_adaptive_missing_crc_sectors yes -RS02_adaptive_missing_ecc_sectors yes -RS02_adaptive_data_bad_byte yes -RS02_adaptive_crc_bad_byte yes -RS02_adaptive_ecc_bad_byte yes -RS02_adaptive_modulo_glitch yes -RS02_adaptive_modulo_glitch2 yes -RS02_adaptive_modulo_glitch3 yes -RS02_adaptive_modulo_glitch4 yes -RS02_adaptive_with_rs01_file yes -RS02_adaptive_with_wrong_rs01_file yes -RS02_adaptive_with_rs03_file yes -RS02_adaptive_with_wrong_rs03_file yes - -### RS03 augmented image tests +RS02_adaptive_good no +RS02_adaptive_good_file no +RS02_adaptive_good_verbose no +RS02_adaptive_shorter no +RS02_adaptive_longer no +RS02_adaptive_tao_tail no +RS02_adaptive_no_tao_tail no +RS02_adaptive_incompatible_ecc no +RS02_adaptive_bad_header no +RS02_adaptive_bad_headers no +RS02_adaptive_missing_data_sectors no +RS02_adaptive_missing_crc_sectors no +RS02_adaptive_missing_ecc_sectors no +RS02_adaptive_data_bad_byte no +RS02_adaptive_crc_bad_byte no +RS02_adaptive_ecc_bad_byte no +RS02_adaptive_modulo_glitch no +RS02_adaptive_modulo_glitch2 no +RS02_adaptive_modulo_glitch3 no +RS02_adaptive_modulo_glitch4 no +RS02_adaptive_with_rs01_file no +RS02_adaptive_with_wrong_rs01_file no +RS02_adaptive_with_rs03_file no +RS02_adaptive_with_wrong_rs03_file no + +### RS03 augmented image tests — DISABLED: migrated to Python pytest (tests/test_rs03i.py) # Strip tests -RS03i_strip_ecc yes -RS03i_strip_ecc_not yes +RS03i_strip_ecc no +RS03i_strip_ecc_not no # Verify tests -RS03i_good yes -RS03i_good_quick yes -RS03i_no_image yes -RS03i_truncated yes -RS03i_plus1 yes -RS03i_plus17 yes -RS03i_plus_56_bytes yes -RS03i_bad_crc_cookie yes -RS03i_bad_crc_checksum yes -RS03i_missing_crc_sectors yes -RS03i_missing_data_sectors yes -RS03i_missing_ecc_sectors yes -RS03i_data_bad_byte yes -RS03i_ecc_bad_byte yes -RS03i_layer_multiple yes -RS03i_no_padding yes -RS03i_with_rs01_file yes -RS03i_with_wrong_rs01_file yes -RS03i_with_rs03_file yes -RS03i_with_wrong_rs03_file yes -RS03i_crc_section_with_uncorrectable_dsm yes -RS03i_uncorrectable_dsm_in_image yes -RS03i_uncorrectable_dsm_in_image_verbose yes -RS03i_ecc_section_with_uncorrectable_dsm yes -RS03i_uncorrectable_dsm_in_image2 yes -RS03i_uncorrectable_dsm_in_image2_verbose yes -RS03i_missing_iso_header yes -RS03i_missing_header yes -RS03i_missing_header2 yes -RS03i_missing_header3 yes -RS03i_missing_header4 yes -RS03i_missing_header5 yes -RS03i_missing_header6 yes -RS03i_missing_header_truncated yes -RS03i_missing_header_no_crcsec yes -RS03i_random_image yes -RS03i_rediscover_8_roots yes -RS03i_rediscover_8_roots2 yes -RS03i_rediscover_170_roots yes -RS03i_rediscover_170_roots2 yes -RS03i_rediscover_170_roots_padding yes -RS03i_rediscover_170_roots_padding2 yes -RS03i_with_ecc_file_header yes -RS03i_with_ecc_file_crc_block yes -RS03i_with_crc_error_in_padding yes -RS03i_verify_custom_n_good yes -RS03i_verify_custom_n_bad_header_no_n yes -RS03i_verify_custom_n_bad_header_with_n yes +RS03i_good no +RS03i_good_quick no +RS03i_no_image no +RS03i_truncated no +RS03i_plus1 no +RS03i_plus17 no +RS03i_plus_56_bytes no +RS03i_bad_crc_cookie no +RS03i_bad_crc_checksum no +RS03i_missing_crc_sectors no +RS03i_missing_data_sectors no +RS03i_missing_ecc_sectors no +RS03i_data_bad_byte no +RS03i_ecc_bad_byte no +RS03i_layer_multiple no +RS03i_no_padding no +RS03i_with_rs01_file no +RS03i_with_wrong_rs01_file no +RS03i_with_rs03_file no +RS03i_with_wrong_rs03_file no +RS03i_crc_section_with_uncorrectable_dsm no +RS03i_uncorrectable_dsm_in_image no +RS03i_uncorrectable_dsm_in_image_verbose no +RS03i_ecc_section_with_uncorrectable_dsm no +RS03i_uncorrectable_dsm_in_image2 no +RS03i_uncorrectable_dsm_in_image2_verbose no +RS03i_missing_iso_header no +RS03i_missing_header no +RS03i_missing_header2 no +RS03i_missing_header3 no +RS03i_missing_header4 no +RS03i_missing_header5 no +RS03i_missing_header6 no +RS03i_missing_header_truncated no +RS03i_missing_header_no_crcsec no +RS03i_random_image no +RS03i_rediscover_8_roots no +RS03i_rediscover_8_roots2 no +RS03i_rediscover_170_roots no +RS03i_rediscover_170_roots2 no +RS03i_rediscover_170_roots_padding no +RS03i_rediscover_170_roots_padding2 no +RS03i_with_ecc_file_header no +RS03i_with_ecc_file_crc_block no +RS03i_with_crc_error_in_padding no +RS03i_verify_custom_n_good no +RS03i_verify_custom_n_bad_header_no_n no +RS03i_verify_custom_n_bad_header_with_n no # Creation tests -RS03i_ecc_create yes -RS03i_ecc_missing_image yes -RS03i_ecc_no_read_perm yes -RS03i_ecc_no_write_perm yes -RS03i_ecc_from_rs03 yes -RS03i_ecc_from_rs02 yes -RS03i_ecc_from_larger_rs03 yes -RS03i_ecc_from_rs02_non_blocksize yes -RS03i_ecc_from_rs03_non_blocksize yes -RS03i_ecc_from_larger_rs03_non_blocksize yes -RS03i_ecc_non_blocksize yes -RS03i_ecc_missing_sectors yes -RS03i_ecc_layer_multiple yes -RS03i_ecc_no_padding yes -RS03i_ecc_create_after_read yes -RS03i_ecc_create_after_partial_read yes -RS03i_ecc_recreate_after_read_rs01 yes -RS03i_ecc_recreate_after_read_rs02 yes -RS03i_ecc_recreate_after_read_rs03i yes -RS03i_ecc_recreate_after_read_rs03f yes +RS03i_ecc_create no +RS03i_ecc_missing_image no +RS03i_ecc_no_read_perm no +RS03i_ecc_no_write_perm no +RS03i_ecc_from_rs03 no +RS03i_ecc_from_rs02 no +RS03i_ecc_from_larger_rs03 no +RS03i_ecc_from_rs02_non_blocksize no +RS03i_ecc_from_rs03_non_blocksize no +RS03i_ecc_from_larger_rs03_non_blocksize no +RS03i_ecc_non_blocksize no +RS03i_ecc_missing_sectors no +RS03i_ecc_layer_multiple no +RS03i_ecc_no_padding no +RS03i_ecc_create_after_read no +RS03i_ecc_create_after_partial_read no +RS03i_ecc_recreate_after_read_rs01 no +RS03i_ecc_recreate_after_read_rs02 no +RS03i_ecc_recreate_after_read_rs03i no +RS03i_ecc_recreate_after_read_rs03f no # Fixing tests -RS03i_fix_no_read_perm yes -RS03i_fix_no_write_perm yes -RS03i_fix_good_image yes -RS03i_fix_truncated_image yes -RS03i_fix_trailing_bytes yes -RS03i_fix_trailing_tao yes -RS03i_fix_trailing_garbage yes -RS03i_fix_trailing_garbage2 yes -RS03i_fix_correctable yes -RS03i_fix_border_cases_erasures yes -RS03i_fix_border_cases_crc_errors yes -RS03i_fix_layer_multiple yes -RS03i_fix_no_padding yes -RS03i_fix_with_rs01_file yes -RS03i_fix_with_rs03_file yes -RS03i_fix_with_missing_header yes -RS03i_fix_with_missing_iso_header yes -RS03i_fix_with_ecc_file_header yes -RS03i_fix_with_ecc_file_crc_block yes -RS03i_fix_with_crc_error_in_padding yes -RS03i_fix_custom_n_good yes -RS03i_fix_custom_n_bad_header_with_n yes -RS03i_fix_custom_n_bad_header_no_n yes -RS03i_fix_custom_n_bad_header_bruteforce yes -RS03i_fix_custom_n_truncated_with_n yes -RS03i_fix_custom_n_truncated_no_bruteforce yes -RS03i_fix_custom_n_truncated_bruteforce yes +RS03i_fix_no_read_perm no +RS03i_fix_no_write_perm no +RS03i_fix_good_image no +RS03i_fix_truncated_image no +RS03i_fix_trailing_bytes no +RS03i_fix_trailing_tao no +RS03i_fix_trailing_garbage no +RS03i_fix_trailing_garbage2 no +RS03i_fix_correctable no +RS03i_fix_border_cases_erasures no +RS03i_fix_border_cases_crc_errors no +RS03i_fix_layer_multiple no +RS03i_fix_no_padding no +RS03i_fix_with_rs01_file no +RS03i_fix_with_rs03_file no +RS03i_fix_with_missing_header no +RS03i_fix_with_missing_iso_header no +RS03i_fix_with_ecc_file_header no +RS03i_fix_with_ecc_file_crc_block no +RS03i_fix_with_crc_error_in_padding no +RS03i_fix_custom_n_good no +RS03i_fix_custom_n_bad_header_with_n no +RS03i_fix_custom_n_bad_header_no_n no +RS03i_fix_custom_n_bad_header_bruteforce no +RS03i_fix_custom_n_truncated_with_n no +RS03i_fix_custom_n_truncated_no_bruteforce no +RS03i_fix_custom_n_truncated_bruteforce no # Scanning tests -RS03i_scan_good yes -RS03i_scan_good_verbose yes -RS03i_scan_shorter yes -RS03i_scan_longer yes -RS03i_scan_tao_tail yes -RS03i_scan_no_tao_tail yes -RS03i_scan_incompatible_ecc yes -RS03i_scan_bad_header yes -RS03i_scan_missing_data_sectors yes -RS03i_scan_missing_crc_sectors yes -RS03i_scan_missing_ecc_sectors yes -RS03i_scan_data_bad_byte yes -RS03i_scan_crc_bad_byte yes -RS03i_scan_ecc_bad_byte yes -RS03i_scan_with_rs01_file yes -RS03i_scan_with_wrong_rs01_file yes -RS03i_scan_with_rs03_file yes -RS03i_scan_with_wrong_rs03_file yes -RS03i_scan_missing_header_not_exhaustive yes -RS03i_scan_missing_header yes -RS03i_scan_missing_header2 yes -RS03i_scan_missing_header3 yes -RS03i_scan_missing_header4 yes -RS03i_scan_missing_header_truncated yes -RS03i_scan_missing_header_no_crcsec yes -RS03i_scan_random_image yes -RS03i_scan_rediscover_8_roots yes -RS03i_scan_rediscover_8_roots2 yes -RS03i_scan_rediscover_170_roots yes -RS03i_scan_rediscover_170_roots2 yes -RS03i_scan_rediscover_170_roots_padding yes -RS03i_scan_rediscover_170_roots_padding2 yes -RS03i_scan_with_crc_error_in_padding yes +RS03i_scan_good no +RS03i_scan_good_verbose no +RS03i_scan_shorter no +RS03i_scan_longer no +RS03i_scan_tao_tail no +RS03i_scan_no_tao_tail no +RS03i_scan_incompatible_ecc no +RS03i_scan_bad_header no +RS03i_scan_missing_data_sectors no +RS03i_scan_missing_crc_sectors no +RS03i_scan_missing_ecc_sectors no +RS03i_scan_data_bad_byte no +RS03i_scan_crc_bad_byte no +RS03i_scan_ecc_bad_byte no +RS03i_scan_with_rs01_file no +RS03i_scan_with_wrong_rs01_file no +RS03i_scan_with_rs03_file no +RS03i_scan_with_wrong_rs03_file no +RS03i_scan_missing_header_not_exhaustive no +RS03i_scan_missing_header no +RS03i_scan_missing_header2 no +RS03i_scan_missing_header3 no +RS03i_scan_missing_header4 no +RS03i_scan_missing_header_truncated no +RS03i_scan_missing_header_no_crcsec no +RS03i_scan_random_image no +RS03i_scan_rediscover_8_roots no +RS03i_scan_rediscover_8_roots2 no +RS03i_scan_rediscover_170_roots no +RS03i_scan_rediscover_170_roots2 no +RS03i_scan_rediscover_170_roots_padding no +RS03i_scan_rediscover_170_roots_padding2 no +RS03i_scan_with_crc_error_in_padding no # Reading tests (linear) -RS03i_read_good yes -RS03i_read_good_verbose yes -RS03i_read_good_file yes -RS03i_read_shorter yes -RS03i_read_longer yes -RS03i_read_tao_tail yes -RS03i_read_no_tao_tail yes -RS03i_read_incompatible_ecc yes -RS03i_read_bad_header yes -RS03i_read_bad_header_exhaustive yes -RS03i_read_missing_data_sectors yes -RS03i_read_missing_crc_sectors yes -RS03i_read_missing_ecc_sectors yes -RS03i_read_missing_iso_header yes -RS03i_read_data_bad_byte yes -RS03i_read_crc_bad_byte yes -RS03i_read_ecc_bad_byte yes -RS03i_read_with_rs01_file yes -RS03i_read_with_wrong_rs01_file yes -RS03i_read_with_rs03_file yes -RS03i_read_with_wrong_rs03_file yes -RS03i_read_crc_section_with_uncorrectable_dsm yes -RS03i_read_with_missing_header yes -RS03i_read_with_missing_header_exhaustive yes -RS03i_read_with_missing_iso_header_exhaustive yes -RS03i_read_with_ecc_file_header yes -RS03i_read_with_ecc_file_crc_block yes -RS03i_read_second_pass_with_crc_error yes -RS03i_read_multipass_ecc_partial_success yes -RS03i_read_with_crc_error_in_padding yes +RS03i_read_good no +RS03i_read_good_verbose no +RS03i_read_good_file no +RS03i_read_shorter no +RS03i_read_longer no +RS03i_read_tao_tail no +RS03i_read_no_tao_tail no +RS03i_read_incompatible_ecc no +RS03i_read_bad_header no +RS03i_read_bad_header_exhaustive no +RS03i_read_missing_data_sectors no +RS03i_read_missing_crc_sectors no +RS03i_read_missing_ecc_sectors no +RS03i_read_missing_iso_header no +RS03i_read_data_bad_byte no +RS03i_read_crc_bad_byte no +RS03i_read_ecc_bad_byte no +RS03i_read_with_rs01_file no +RS03i_read_with_wrong_rs01_file no +RS03i_read_with_rs03_file no +RS03i_read_with_wrong_rs03_file no +RS03i_read_crc_section_with_uncorrectable_dsm no +RS03i_read_with_missing_header no +RS03i_read_with_missing_header_exhaustive no +RS03i_read_with_missing_iso_header_exhaustive no +RS03i_read_with_ecc_file_header no +RS03i_read_with_ecc_file_crc_block no +RS03i_read_second_pass_with_crc_error no +RS03i_read_multipass_ecc_partial_success no +RS03i_read_with_crc_error_in_padding no # Reading tests (adaptive) -### RS03 error correction file tests +### RS03 error correction file tests — DISABLED: migrated to Python pytest (tests/test_rs03f.py) # Verify tests -RS03f_good yes -RS03f_good_quick yes -RS03f_no_image yes -RS03f_plus56_bytes yes -RS03f_no_image_plus56_bytes yes -RS03f_special_padding yes -RS03f_special_padding_plus56 yes -RS03f_normal_image_ecc_plus56_bytes yes -RS03f_image_plus56_normal_ecc yes -RS03f_few_bytes_shorter yes -RS03f_few_bytes_longer yes -RS03f_few_bytes_shorter2 yes -RS03f_image_truncated_by5 yes -RS03f_one_extra_sector yes -RS03f_17_extra_sectors yes -RS03f_missing_sectors yes -RS03f_crc_errors yes -RS03f_mixed_errors yes -RS03f_crc_error_in_fingerprint yes -RS03f_fingerprint_unreadable yes -RS03f_missing_ecc_header yes -RS03f_missing_ecc_header_and_crc yes -RS03f_missing_ecc_header_and_defective_crc yes -RS03f_ecc_header_crc_error yes -RS03f_ecc_file_truncated yes -RS03f_ecc_file_plus_garbage yes -RS03f_ecc_file_cookieless_crc yes -RS03f_ecc_file_defective_crc yes -RS03f_ecc_file_defective_ecc yes -RS03f_ecc_file_missing_crc yes -RS03f_ecc_file_missing_crc2 yes -RS03f_ecc_file_missing_crc3 yes -RS03f_ecc_file_missing_ecc yes -RS03f_crc_section_with_uncorrectable_dsm yes -RS03f_uncorrectable_dsm_in_image yes -RS03f_uncorrectable_dsm_in_image_verbose yes -RS03f_ecc_section_with_uncorrectable_dsm yes -RS03f_uncorrectable_dsm_in_image2 yes -RS03f_uncorrectable_dsm_in_image2_verbose yes +RS03f_good no +RS03f_good_quick no +RS03f_no_image no +RS03f_plus56_bytes no +RS03f_no_image_plus56_bytes no +RS03f_special_padding no +RS03f_special_padding_plus56 no +RS03f_normal_image_ecc_plus56_bytes no +RS03f_image_plus56_normal_ecc no +RS03f_few_bytes_shorter no +RS03f_few_bytes_longer no +RS03f_few_bytes_shorter2 no +RS03f_image_truncated_by5 no +RS03f_one_extra_sector no +RS03f_17_extra_sectors no +RS03f_missing_sectors no +RS03f_crc_errors no +RS03f_mixed_errors no +RS03f_crc_error_in_fingerprint no +RS03f_fingerprint_unreadable no +RS03f_missing_ecc_header no +RS03f_missing_ecc_header_and_crc no +RS03f_missing_ecc_header_and_defective_crc no +RS03f_ecc_header_crc_error no +RS03f_ecc_file_truncated no +RS03f_ecc_file_plus_garbage no +RS03f_ecc_file_cookieless_crc no +RS03f_ecc_file_defective_crc no +RS03f_ecc_file_defective_ecc no +RS03f_ecc_file_missing_crc no +RS03f_ecc_file_missing_crc2 no +RS03f_ecc_file_missing_crc3 no +RS03f_ecc_file_missing_ecc no +RS03f_crc_section_with_uncorrectable_dsm no +RS03f_uncorrectable_dsm_in_image no +RS03f_uncorrectable_dsm_in_image_verbose no +RS03f_ecc_section_with_uncorrectable_dsm no +RS03f_uncorrectable_dsm_in_image2 no +RS03f_uncorrectable_dsm_in_image2_verbose no # Create tests -RS03f_ecc_create yes -RS03f_ecc_existing_file yes -RS03f_ecc_missing_image yes -RS03f_ecc_no_read_perm yes -RS03f_ecc_no_write_perm yes -RS03f_ecc_create_plus56 yes -RS03f_ecc_missing_sectors yes -RS03f_ecc_create_after_read yes -RS03f_ecc_create_after_partial_read yes -RS03f_ecc_recreate_after_read_rs01 yes -RS03f_ecc_recreate_after_read_rs02 yes -RS03f_ecc_recreate_after_read_rs03i yes -RS03f_ecc_recreate_after_read_rs03f yes +RS03f_ecc_create no +RS03f_ecc_existing_file no +RS03f_ecc_missing_image no +RS03f_ecc_no_read_perm no +RS03f_ecc_no_write_perm no +RS03f_ecc_create_plus56 no +RS03f_ecc_missing_sectors no +RS03f_ecc_create_after_read no +RS03f_ecc_create_after_partial_read no +RS03f_ecc_recreate_after_read_rs01 no +RS03f_ecc_recreate_after_read_rs02 no +RS03f_ecc_recreate_after_read_rs03i no +RS03f_ecc_recreate_after_read_rs03f no # Repair tests -RS03f_fix_good yes -RS03f_fix_missing_data_sectors yes -RS03f_fix_missing_crc_sectors yes -RS03f_fix_missing_ecc_sectors yes -RS03f_fix_border_cases_erasures yes -RS03f_fix_border_cases_crc_errors yes -RS03f_fix_no_read_perm yes -RS03f_fix_no_read_perm_ecc yes -RS03f_fix_no_write_perm yes -RS03f_fix_no_write_perm_ecc yes -RS03f_fix_good_plus56 yes -RS03f_fix_additional_sector yes -RS03f_fix_plus17 yes -RS03f_fix_plus17_truncate yes -RS03f_fix_plus56 yes -RS03f_fix_plus56_plus17 yes -RS03f_fix_plus56_plus17_truncate yes -RS03f_fix_plus56_plus1s yes -RS03f_fix_plus56_plus2s yes -RS03f_fix_plus56_plus17500 yes -RS03f_fix_truncated yes -RS03f_fix_plus56_truncated yes -RS03f_fix_plus56_little_truncated yes -RS03f_fix_ecc_file_truncated yes -RS03f_fix_missing_ecc_header yes +RS03f_fix_good no +RS03f_fix_missing_data_sectors no +RS03f_fix_missing_crc_sectors no +RS03f_fix_missing_ecc_sectors no +RS03f_fix_border_cases_erasures no +RS03f_fix_border_cases_crc_errors no +RS03f_fix_no_read_perm no +RS03f_fix_no_read_perm_ecc no +RS03f_fix_no_write_perm no +RS03f_fix_no_write_perm_ecc no +RS03f_fix_good_plus56 no +RS03f_fix_additional_sector no +RS03f_fix_plus17 no +RS03f_fix_plus17_truncate no +RS03f_fix_plus56 no +RS03f_fix_plus56_plus17 no +RS03f_fix_plus56_plus17_truncate no +RS03f_fix_plus56_plus1s no +RS03f_fix_plus56_plus2s no +RS03f_fix_plus56_plus17500 no +RS03f_fix_truncated no +RS03f_fix_plus56_truncated no +RS03f_fix_plus56_little_truncated no +RS03f_fix_ecc_file_truncated no +RS03f_fix_missing_ecc_header no # Scanning tests -RS03f_scan_good yes -RS03f_scan_good_verbose yes -RS03f_scan_shorter yes -RS03f_scan_longer yes -RS03f_scan_tao_tail yes -RS03f_scan_no_tao_tail yes -RS03f_scan_incompatible_ecc yes -RS03f_scan_bad_header yes -RS03f_scan_missing_data_sectors yes -RS03f_scan_missing_crc_sectors yes -RS03f_scan_missing_ecc_sectors yes -RS03f_scan_data_bad_byte yes -RS03f_scan_crc_bad_byte yes -RS03f_scan_ecc_bad_byte yes -RS03f_scan_missing_ecc_header yes -RS03f_scan_missing_ecc_header_and_crc yes -RS03f_scan_missing_ecc_header_and_defective_crc yes -RS03f_scan_ecc_header_crc_error yes +RS03f_scan_good no +RS03f_scan_good_verbose no +RS03f_scan_shorter no +RS03f_scan_longer no +RS03f_scan_tao_tail no +RS03f_scan_no_tao_tail no +RS03f_scan_incompatible_ecc no +RS03f_scan_bad_header no +RS03f_scan_missing_data_sectors no +RS03f_scan_missing_crc_sectors no +RS03f_scan_missing_ecc_sectors no +RS03f_scan_data_bad_byte no +RS03f_scan_crc_bad_byte no +RS03f_scan_ecc_bad_byte no +RS03f_scan_missing_ecc_header no +RS03f_scan_missing_ecc_header_and_crc no +RS03f_scan_missing_ecc_header_and_defective_crc no +RS03f_scan_ecc_header_crc_error no # Reading tests (linear) -RS03f_read_good yes -RS03f_read_good_verbose yes -RS03f_read_good_file yes -RS03f_read_shorter yes -RS03f_read_longer yes -RS03f_read_tao_tail yes -RS03f_read_no_tao_tail yes -RS03f_read_incompatible_ecc yes -RS03f_read_bad_header yes -RS03f_read_missing_data_sectors yes -RS03f_read_missing_crc_sectors yes -RS03f_read_missing_ecc_sectors yes -RS03f_read_data_bad_byte yes -RS03f_read_crc_bad_byte yes -RS03f_read_ecc_bad_byte yes -RS03f_read_crc_section_with_uncorrectable_dsm yes -RS03f_read_second_pass_with_crc_error yes -RS03f_read_multipass_ecc_partial_success yes +RS03f_read_good no +RS03f_read_good_verbose no +RS03f_read_good_file no +RS03f_read_shorter no +RS03f_read_longer no +RS03f_read_tao_tail no +RS03f_read_no_tao_tail no +RS03f_read_incompatible_ecc no +RS03f_read_bad_header no +RS03f_read_missing_data_sectors no +RS03f_read_missing_crc_sectors no +RS03f_read_missing_ecc_sectors no +RS03f_read_data_bad_byte no +RS03f_read_crc_bad_byte no +RS03f_read_ecc_bad_byte no +RS03f_read_crc_section_with_uncorrectable_dsm no +RS03f_read_second_pass_with_crc_error no +RS03f_read_multipass_ecc_partial_success no # Reading tests (adaptive) -RS03f_adaptive_good yes +RS03f_adaptive_good no diff --git a/regtest/database/RS01_ecc_create_after_partial_read b/regtest/database/RS01_ecc_create_after_partial_read index 8581c36b..6ed1aad8 100644 --- a/regtest/database/RS01_ecc_create_after_partial_read +++ b/regtest/database/RS01_ecc_create_after_partial_read @@ -302,511 +302,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS01_ecc_create_after_read b/regtest/database/RS01_ecc_create_after_read index 502fbea7..3666afef 100644 --- a/regtest/database/RS01_ecc_create_after_read +++ b/regtest/database/RS01_ecc_create_after_read @@ -303,511 +303,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS01_ecc_recreate_after_read_rs01 b/regtest/database/RS01_ecc_recreate_after_read_rs01 index 3d14a22f..9c17c6c3 100644 --- a/regtest/database/RS01_ecc_recreate_after_read_rs01 +++ b/regtest/database/RS01_ecc_recreate_after_read_rs01 @@ -305,511 +305,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS01_ecc_recreate_after_read_rs03f b/regtest/database/RS01_ecc_recreate_after_read_rs03f index f25674af..075b5716 100644 --- a/regtest/database/RS01_ecc_recreate_after_read_rs03f +++ b/regtest/database/RS01_ecc_recreate_after_read_rs03f @@ -319,511 +319,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS01_uncorrectable_dsm_in_image2_verbose b/regtest/database/RS01_uncorrectable_dsm_in_image2_verbose index b9466624..c7bb6c98 100644 --- a/regtest/database/RS01_uncorrectable_dsm_in_image2_verbose +++ b/regtest/database/RS01_uncorrectable_dsm_in_image2_verbose @@ -130,511 +130,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS01_uncorrectable_dsm_in_image_verbose b/regtest/database/RS01_uncorrectable_dsm_in_image_verbose index e80123b0..4f212659 100644 --- a/regtest/database/RS01_uncorrectable_dsm_in_image_verbose +++ b/regtest/database/RS01_uncorrectable_dsm_in_image_verbose @@ -130,511 +130,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS02_ecc_create_after_partial_read b/regtest/database/RS02_ecc_create_after_partial_read index be77c617..5333d4e3 100644 --- a/regtest/database/RS02_ecc_create_after_partial_read +++ b/regtest/database/RS02_ecc_create_after_partial_read @@ -439,511 +439,6 @@ RS03: try number = 133, reading sector 29592 RS03: try number = 134, reading sector 29729 RS03: try number = 135, reading sector 29866 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 116 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 136, reading sector 9744 -RS03: try number = 137, reading sector 9860 -RS03: try number = 138, reading sector 9976 -RS03: try number = 139, reading sector 10092 -RS03: try number = 140, reading sector 10208 -RS03: try number = 141, reading sector 10324 -RS03: try number = 142, reading sector 10440 -RS03: try number = 143, reading sector 10556 -RS03: try number = 144, reading sector 10672 -RS03: try number = 145, reading sector 10788 -RS03: try number = 146, reading sector 10904 -RS03: try number = 147, reading sector 11020 -RS03: try number = 148, reading sector 11136 -RS03: try number = 149, reading sector 11252 -RS03: try number = 150, reading sector 11368 -RS03: try number = 151, reading sector 11484 -RS03: try number = 152, reading sector 11600 -RS03: try number = 153, reading sector 11716 -RS03: try number = 154, reading sector 11832 -RS03: try number = 155, reading sector 11948 -RS03: try number = 156, reading sector 12064 -RS03: try number = 157, reading sector 12180 -RS03: try number = 158, reading sector 12296 -RS03: try number = 159, reading sector 12412 -RS03: try number = 160, reading sector 12528 -RS03: try number = 161, reading sector 12644 -RS03: try number = 162, reading sector 12760 -RS03: try number = 163, reading sector 12876 -RS03: try number = 164, reading sector 12992 -RS03: try number = 165, reading sector 13108 -RS03: try number = 166, reading sector 13224 -RS03: try number = 167, reading sector 13340 -RS03: try number = 168, reading sector 13456 -RS03: try number = 169, reading sector 13572 -RS03: try number = 170, reading sector 13688 -RS03: try number = 171, reading sector 13804 -RS03: try number = 172, reading sector 13920 -RS03: try number = 173, reading sector 14036 -RS03: try number = 174, reading sector 14152 -RS03: try number = 175, reading sector 14268 -RS03: try number = 176, reading sector 14384 -RS03: try number = 177, reading sector 14500 -RS03: try number = 178, reading sector 14616 -RS03: try number = 179, reading sector 14732 -RS03: try number = 180, reading sector 14848 -RS03: try number = 181, reading sector 14964 -RS03: try number = 182, reading sector 15080 -RS03: try number = 183, reading sector 15196 -RS03: try number = 184, reading sector 15312 -RS03: try number = 185, reading sector 15428 -RS03: try number = 186, reading sector 15544 -RS03: try number = 187, reading sector 15660 -RS03: try number = 188, reading sector 15776 -RS03: try number = 189, reading sector 15892 -RS03: try number = 190, reading sector 16008 -RS03: try number = 191, reading sector 16124 -RS03: try number = 192, reading sector 16240 -RS03: try number = 193, reading sector 16356 -RS03: try number = 194, reading sector 16472 -RS03: try number = 195, reading sector 16588 -RS03: try number = 196, reading sector 16704 -RS03: try number = 197, reading sector 16820 -RS03: try number = 198, reading sector 16936 -RS03: try number = 199, reading sector 17052 -RS03: try number = 200, reading sector 17168 -RS03: try number = 201, reading sector 17284 -RS03: try number = 202, reading sector 17400 -RS03: try number = 203, reading sector 17516 -RS03: try number = 204, reading sector 17632 -RS03: try number = 205, reading sector 17748 -RS03: try number = 206, reading sector 17864 -RS03: try number = 207, reading sector 17980 -RS03: try number = 208, reading sector 18096 -RS03: try number = 209, reading sector 18212 -RS03: try number = 210, reading sector 18328 -RS03: try number = 211, reading sector 18444 -RS03: try number = 212, reading sector 18560 -RS03: try number = 213, reading sector 18676 -RS03: try number = 214, reading sector 18792 -RS03: try number = 215, reading sector 18908 -RS03: try number = 216, reading sector 19024 -RS03: try number = 217, reading sector 19140 -RS03: try number = 218, reading sector 19256 -RS03: try number = 219, reading sector 19372 -RS03: try number = 220, reading sector 19488 -RS03: try number = 221, reading sector 19604 -RS03: try number = 222, reading sector 19720 -RS03: try number = 223, reading sector 19836 -RS03: try number = 224, reading sector 19952 -RS03: try number = 225, reading sector 20068 -RS03: try number = 226, reading sector 20184 -RS03: try number = 227, reading sector 20300 -RS03: try number = 228, reading sector 20416 -RS03: try number = 229, reading sector 20532 -RS03: try number = 230, reading sector 20648 -RS03: try number = 231, reading sector 20764 -RS03: try number = 232, reading sector 20880 -RS03: try number = 233, reading sector 20996 -RS03: try number = 234, reading sector 21112 -RS03: try number = 235, reading sector 21228 -RS03: try number = 236, reading sector 21344 -RS03: try number = 237, reading sector 21460 -RS03: try number = 238, reading sector 21576 -RS03: try number = 239, reading sector 21692 -RS03: try number = 240, reading sector 21808 -RS03: try number = 241, reading sector 21924 -RS03: try number = 242, reading sector 22040 -RS03: try number = 243, reading sector 22156 -RS03: try number = 244, reading sector 22272 -RS03: try number = 245, reading sector 22388 -RS03: try number = 246, reading sector 22504 -RS03: try number = 247, reading sector 22620 -RS03: try number = 248, reading sector 22736 -RS03: try number = 249, reading sector 22852 -RS03: try number = 250, reading sector 22968 -RS03: try number = 251, reading sector 23084 -RS03: try number = 252, reading sector 23200 -RS03: try number = 253, reading sector 23316 -RS03: try number = 254, reading sector 23432 -RS03: try number = 255, reading sector 23548 -RS03: try number = 256, reading sector 23664 -RS03: try number = 257, reading sector 23780 -RS03: try number = 258, reading sector 23896 -RS03: try number = 259, reading sector 24012 -RS03: try number = 260, reading sector 24128 -RS03: try number = 261, reading sector 24244 -RS03: try number = 262, reading sector 24360 -RS03: try number = 263, reading sector 24476 -RS03: try number = 264, reading sector 24592 -RS03: try number = 265, reading sector 24708 -RS03: try number = 266, reading sector 24824 -RS03: try number = 267, reading sector 24940 -RS03: try number = 268, reading sector 25056 -RS03: try number = 269, reading sector 25172 -RS03: try number = 270, reading sector 25288 -RS03: try number = 271, reading sector 25404 -RS03: try number = 272, reading sector 25520 -RS03: try number = 273, reading sector 25636 -RS03: try number = 274, reading sector 25752 -RS03: try number = 275, reading sector 25868 -RS03: try number = 276, reading sector 25984 -RS03: try number = 277, reading sector 26100 -RS03: try number = 278, reading sector 26216 -RS03: try number = 279, reading sector 26332 -RS03: try number = 280, reading sector 26448 -RS03: try number = 281, reading sector 26564 -RS03: try number = 282, reading sector 26680 -RS03: try number = 283, reading sector 26796 -RS03: try number = 284, reading sector 26912 -RS03: try number = 285, reading sector 27028 -RS03: try number = 286, reading sector 27144 -RS03: try number = 287, reading sector 27260 -RS03: try number = 288, reading sector 27376 -RS03: try number = 289, reading sector 27492 -RS03: try number = 290, reading sector 27608 -RS03: try number = 291, reading sector 27724 -RS03: try number = 292, reading sector 27840 -RS03: try number = 293, reading sector 27956 -RS03: try number = 294, reading sector 28072 -RS03: try number = 295, reading sector 28188 -RS03: try number = 296, reading sector 28304 -RS03: try number = 297, reading sector 28420 -RS03: try number = 298, reading sector 28536 -RS03: try number = 299, reading sector 28652 -** All layers tested -> no RS03 data found -.. trying layer size 117 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 300, reading sector 9828 -RS03: try number = 301, reading sector 9945 -RS03: try number = 302, reading sector 10062 -RS03: try number = 303, reading sector 10179 -RS03: try number = 304, reading sector 10296 -RS03: try number = 305, reading sector 10413 -RS03: try number = 306, reading sector 10530 -RS03: try number = 307, reading sector 10647 -RS03: try number = 308, reading sector 10764 -RS03: try number = 309, reading sector 10881 -RS03: try number = 310, reading sector 10998 -RS03: try number = 311, reading sector 11115 -RS03: try number = 312, reading sector 11232 -RS03: try number = 313, reading sector 11349 -RS03: try number = 314, reading sector 11466 -RS03: try number = 315, reading sector 11583 -RS03: try number = 316, reading sector 11700 -RS03: try number = 317, reading sector 11817 -RS03: try number = 318, reading sector 11934 -RS03: try number = 319, reading sector 12051 -RS03: try number = 320, reading sector 12168 -RS03: try number = 321, reading sector 12285 -RS03: try number = 322, reading sector 12402 -RS03: try number = 323, reading sector 12519 -RS03: try number = 324, reading sector 12636 -RS03: try number = 325, reading sector 12753 -RS03: try number = 326, reading sector 12870 -RS03: try number = 327, reading sector 12987 -RS03: try number = 328, reading sector 13104 -RS03: try number = 329, reading sector 13221 -RS03: try number = 330, reading sector 13338 -RS03: try number = 331, reading sector 13455 -RS03: try number = 332, reading sector 13572 -RS03: try number = 333, reading sector 13689 -RS03: try number = 334, reading sector 13806 -RS03: try number = 335, reading sector 13923 -RS03: try number = 336, reading sector 14040 -RS03: try number = 337, reading sector 14157 -RS03: try number = 338, reading sector 14274 -RS03: try number = 339, reading sector 14391 -RS03: try number = 340, reading sector 14508 -RS03: try number = 341, reading sector 14625 -RS03: try number = 342, reading sector 14742 -RS03: try number = 343, reading sector 14859 -RS03: try number = 344, reading sector 14976 -RS03: try number = 345, reading sector 15093 -RS03: try number = 346, reading sector 15210 -RS03: try number = 347, reading sector 15327 -RS03: try number = 348, reading sector 15444 -RS03: try number = 349, reading sector 15561 -RS03: try number = 350, reading sector 15678 -RS03: try number = 351, reading sector 15795 -RS03: try number = 352, reading sector 15912 -RS03: try number = 353, reading sector 16029 -RS03: try number = 354, reading sector 16146 -RS03: try number = 355, reading sector 16263 -RS03: try number = 356, reading sector 16380 -RS03: try number = 357, reading sector 16497 -RS03: try number = 358, reading sector 16614 -RS03: try number = 359, reading sector 16731 -RS03: try number = 360, reading sector 16848 -RS03: try number = 361, reading sector 16965 -RS03: try number = 362, reading sector 17082 -RS03: try number = 363, reading sector 17199 -RS03: try number = 364, reading sector 17316 -RS03: try number = 365, reading sector 17433 -RS03: try number = 366, reading sector 17550 -RS03: try number = 367, reading sector 17667 -RS03: try number = 368, reading sector 17784 -RS03: try number = 369, reading sector 17901 -RS03: try number = 370, reading sector 18018 -RS03: try number = 371, reading sector 18135 -RS03: try number = 372, reading sector 18252 -RS03: try number = 373, reading sector 18369 -RS03: try number = 374, reading sector 18486 -RS03: try number = 375, reading sector 18603 -RS03: try number = 376, reading sector 18720 -RS03: try number = 377, reading sector 18837 -RS03: try number = 378, reading sector 18954 -RS03: try number = 379, reading sector 19071 -RS03: try number = 380, reading sector 19188 -RS03: try number = 381, reading sector 19305 -RS03: try number = 382, reading sector 19422 -RS03: try number = 383, reading sector 19539 -RS03: try number = 384, reading sector 19656 -RS03: try number = 385, reading sector 19773 -RS03: try number = 386, reading sector 19890 -RS03: try number = 387, reading sector 20007 -RS03: try number = 388, reading sector 20124 -RS03: try number = 389, reading sector 20241 -RS03: try number = 390, reading sector 20358 -RS03: try number = 391, reading sector 20475 -RS03: try number = 392, reading sector 20592 -RS03: try number = 393, reading sector 20709 -RS03: try number = 394, reading sector 20826 -RS03: try number = 395, reading sector 20943 -RS03: try number = 396, reading sector 21060 -RS03: try number = 397, reading sector 21177 -RS03: try number = 398, reading sector 21294 -RS03: try number = 399, reading sector 21411 -RS03: try number = 400, reading sector 21528 -RS03: try number = 401, reading sector 21645 -RS03: try number = 402, reading sector 21762 -RS03: try number = 403, reading sector 21879 -RS03: try number = 404, reading sector 21996 -RS03: try number = 405, reading sector 22113 -RS03: try number = 406, reading sector 22230 -RS03: try number = 407, reading sector 22347 -RS03: try number = 408, reading sector 22464 -RS03: try number = 409, reading sector 22581 -RS03: try number = 410, reading sector 22698 -RS03: try number = 411, reading sector 22815 -RS03: try number = 412, reading sector 22932 -RS03: try number = 413, reading sector 23049 -RS03: try number = 414, reading sector 23166 -RS03: try number = 415, reading sector 23283 -RS03: try number = 416, reading sector 23400 -RS03: try number = 417, reading sector 23517 -RS03: try number = 418, reading sector 23634 -RS03: try number = 419, reading sector 23751 -RS03: try number = 420, reading sector 23868 -RS03: try number = 421, reading sector 23985 -RS03: try number = 422, reading sector 24102 -RS03: try number = 423, reading sector 24219 -RS03: try number = 424, reading sector 24336 -RS03: try number = 425, reading sector 24453 -RS03: try number = 426, reading sector 24570 -RS03: try number = 427, reading sector 24687 -RS03: try number = 428, reading sector 24804 -RS03: try number = 429, reading sector 24921 -RS03: try number = 430, reading sector 25038 -RS03: try number = 431, reading sector 25155 -RS03: try number = 432, reading sector 25272 -RS03: try number = 433, reading sector 25389 -RS03: try number = 434, reading sector 25506 -RS03: try number = 435, reading sector 25623 -RS03: try number = 436, reading sector 25740 -RS03: try number = 437, reading sector 25857 -RS03: try number = 438, reading sector 25974 -RS03: try number = 439, reading sector 26091 -RS03: try number = 440, reading sector 26208 -RS03: try number = 441, reading sector 26325 -RS03: try number = 442, reading sector 26442 -RS03: try number = 443, reading sector 26559 -RS03: try number = 444, reading sector 26676 -RS03: try number = 445, reading sector 26793 -RS03: try number = 446, reading sector 26910 -RS03: try number = 447, reading sector 27027 -RS03: try number = 448, reading sector 27144 -RS03: try number = 449, reading sector 27261 -RS03: try number = 450, reading sector 27378 -RS03: try number = 451, reading sector 27495 -RS03: try number = 452, reading sector 27612 -RS03: try number = 453, reading sector 27729 -RS03: try number = 454, reading sector 27846 -RS03: try number = 455, reading sector 27963 -RS03: try number = 456, reading sector 28080 -RS03: try number = 457, reading sector 28197 -RS03: try number = 458, reading sector 28314 -RS03: try number = 459, reading sector 28431 -RS03: try number = 460, reading sector 28548 -RS03: try number = 461, reading sector 28665 -RS03: try number = 462, reading sector 28782 -RS03: try number = 463, reading sector 28899 -** All layers tested -> no RS03 data found -.. trying layer size 118 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 464, reading sector 9912 -RS03: try number = 465, reading sector 10030 -RS03: try number = 466, reading sector 10148 -RS03: try number = 467, reading sector 10266 -RS03: try number = 468, reading sector 10384 -RS03: try number = 469, reading sector 10502 -RS03: try number = 470, reading sector 10620 -RS03: try number = 471, reading sector 10738 -RS03: try number = 472, reading sector 10856 -RS03: try number = 473, reading sector 10974 -RS03: try number = 474, reading sector 11092 -RS03: try number = 475, reading sector 11210 -RS03: try number = 476, reading sector 11328 -RS03: try number = 477, reading sector 11446 -RS03: try number = 478, reading sector 11564 -RS03: try number = 479, reading sector 11682 -RS03: try number = 480, reading sector 11800 -RS03: try number = 481, reading sector 11918 -RS03: try number = 482, reading sector 12036 -RS03: try number = 483, reading sector 12154 -RS03: try number = 484, reading sector 12272 -RS03: try number = 485, reading sector 12390 -RS03: try number = 486, reading sector 12508 -RS03: try number = 487, reading sector 12626 -RS03: try number = 488, reading sector 12744 -RS03: try number = 489, reading sector 12862 -RS03: try number = 490, reading sector 12980 -RS03: try number = 491, reading sector 13098 -RS03: try number = 492, reading sector 13216 -RS03: try number = 493, reading sector 13334 -RS03: try number = 494, reading sector 13452 -RS03: try number = 495, reading sector 13570 -RS03: try number = 496, reading sector 13688 -RS03: try number = 497, reading sector 13806 -RS03: try number = 498, reading sector 13924 -RS03: try number = 499, reading sector 14042 -RS03: try number = 500, reading sector 14160 -RS03: try number = 501, reading sector 14278 -RS03: try number = 502, reading sector 14396 -RS03: try number = 503, reading sector 14514 -RS03: try number = 504, reading sector 14632 -RS03: try number = 505, reading sector 14750 -RS03: try number = 506, reading sector 14868 -RS03: try number = 507, reading sector 14986 -RS03: try number = 508, reading sector 15104 -RS03: try number = 509, reading sector 15222 -RS03: try number = 510, reading sector 15340 -RS03: try number = 511, reading sector 15458 -RS03: try number = 512, reading sector 15576 -RS03: try number = 513, reading sector 15694 -RS03: try number = 514, reading sector 15812 -RS03: try number = 515, reading sector 15930 -RS03: try number = 516, reading sector 16048 -RS03: try number = 517, reading sector 16166 -RS03: try number = 518, reading sector 16284 -RS03: try number = 519, reading sector 16402 -RS03: try number = 520, reading sector 16520 -RS03: try number = 521, reading sector 16638 -RS03: try number = 522, reading sector 16756 -RS03: try number = 523, reading sector 16874 -RS03: try number = 524, reading sector 16992 -RS03: try number = 525, reading sector 17110 -RS03: try number = 526, reading sector 17228 -RS03: try number = 527, reading sector 17346 -RS03: try number = 528, reading sector 17464 -RS03: try number = 529, reading sector 17582 -RS03: try number = 530, reading sector 17700 -RS03: try number = 531, reading sector 17818 -RS03: try number = 532, reading sector 17936 -RS03: try number = 533, reading sector 18054 -RS03: try number = 534, reading sector 18172 -RS03: try number = 535, reading sector 18290 -RS03: try number = 536, reading sector 18408 -RS03: try number = 537, reading sector 18526 -RS03: try number = 538, reading sector 18644 -RS03: try number = 539, reading sector 18762 -RS03: try number = 540, reading sector 18880 -RS03: try number = 541, reading sector 18998 -RS03: try number = 542, reading sector 19116 -RS03: try number = 543, reading sector 19234 -RS03: try number = 544, reading sector 19352 -RS03: try number = 545, reading sector 19470 -RS03: try number = 546, reading sector 19588 -RS03: try number = 547, reading sector 19706 -RS03: try number = 548, reading sector 19824 -RS03: try number = 549, reading sector 19942 -RS03: try number = 550, reading sector 20060 -RS03: try number = 551, reading sector 20178 -RS03: try number = 552, reading sector 20296 -RS03: try number = 553, reading sector 20414 -RS03: try number = 554, reading sector 20532 -RS03: try number = 555, reading sector 20650 -RS03: try number = 556, reading sector 20768 -RS03: try number = 557, reading sector 20886 -RS03: try number = 558, reading sector 21004 -RS03: try number = 559, reading sector 21122 -RS03: try number = 560, reading sector 21240 -RS03: try number = 561, reading sector 21358 -RS03: try number = 562, reading sector 21476 -RS03: try number = 563, reading sector 21594 -RS03: try number = 564, reading sector 21712 -RS03: try number = 565, reading sector 21830 -RS03: try number = 566, reading sector 21948 -RS03: try number = 567, reading sector 22066 -RS03: try number = 568, reading sector 22184 -RS03: try number = 569, reading sector 22302 -RS03: try number = 570, reading sector 22420 -RS03: try number = 571, reading sector 22538 -RS03: try number = 572, reading sector 22656 -RS03: try number = 573, reading sector 22774 -RS03: try number = 574, reading sector 22892 -RS03: try number = 575, reading sector 23010 -RS03: try number = 576, reading sector 23128 -RS03: try number = 577, reading sector 23246 -RS03: try number = 578, reading sector 23364 -RS03: try number = 579, reading sector 23482 -RS03: try number = 580, reading sector 23600 -RS03: try number = 581, reading sector 23718 -RS03: try number = 582, reading sector 23836 -RS03: try number = 583, reading sector 23954 -RS03: try number = 584, reading sector 24072 -RS03: try number = 585, reading sector 24190 -RS03: try number = 586, reading sector 24308 -RS03: try number = 587, reading sector 24426 -RS03: try number = 588, reading sector 24544 -RS03: try number = 589, reading sector 24662 -RS03: try number = 590, reading sector 24780 -RS03: try number = 591, reading sector 24898 -RS03: try number = 592, reading sector 25016 -RS03: try number = 593, reading sector 25134 -RS03: try number = 594, reading sector 25252 -RS03: try number = 595, reading sector 25370 -RS03: try number = 596, reading sector 25488 -RS03: try number = 597, reading sector 25606 -RS03: try number = 598, reading sector 25724 -RS03: try number = 599, reading sector 25842 -RS03: try number = 600, reading sector 25960 -RS03: try number = 601, reading sector 26078 -RS03: try number = 602, reading sector 26196 -RS03: try number = 603, reading sector 26314 -RS03: try number = 604, reading sector 26432 -RS03: try number = 605, reading sector 26550 -RS03: try number = 606, reading sector 26668 -RS03: try number = 607, reading sector 26786 -RS03: try number = 608, reading sector 26904 -RS03: try number = 609, reading sector 27022 -RS03: try number = 610, reading sector 27140 -RS03: try number = 611, reading sector 27258 -RS03: try number = 612, reading sector 27376 -RS03: try number = 613, reading sector 27494 -RS03: try number = 614, reading sector 27612 -RS03: try number = 615, reading sector 27730 -RS03: try number = 616, reading sector 27848 -RS03: try number = 617, reading sector 27966 -RS03: try number = 618, reading sector 28084 -RS03: try number = 619, reading sector 28202 -RS03: try number = 620, reading sector 28320 -RS03: try number = 621, reading sector 28438 -RS03: try number = 622, reading sector 28556 -RS03: try number = 623, reading sector 28674 -RS03: try number = 624, reading sector 28792 -RS03: try number = 625, reading sector 28910 -RS03: try number = 626, reading sector 29028 -RS03: try number = 627, reading sector 29146 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS02_ecc_create_after_read b/regtest/database/RS02_ecc_create_after_read index 3cdf9108..0dc51ccb 100644 --- a/regtest/database/RS02_ecc_create_after_read +++ b/regtest/database/RS02_ecc_create_after_read @@ -440,511 +440,6 @@ RS03: try number = 133, reading sector 29592 RS03: try number = 134, reading sector 29729 RS03: try number = 135, reading sector 29866 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 116 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 136, reading sector 9744 -RS03: try number = 137, reading sector 9860 -RS03: try number = 138, reading sector 9976 -RS03: try number = 139, reading sector 10092 -RS03: try number = 140, reading sector 10208 -RS03: try number = 141, reading sector 10324 -RS03: try number = 142, reading sector 10440 -RS03: try number = 143, reading sector 10556 -RS03: try number = 144, reading sector 10672 -RS03: try number = 145, reading sector 10788 -RS03: try number = 146, reading sector 10904 -RS03: try number = 147, reading sector 11020 -RS03: try number = 148, reading sector 11136 -RS03: try number = 149, reading sector 11252 -RS03: try number = 150, reading sector 11368 -RS03: try number = 151, reading sector 11484 -RS03: try number = 152, reading sector 11600 -RS03: try number = 153, reading sector 11716 -RS03: try number = 154, reading sector 11832 -RS03: try number = 155, reading sector 11948 -RS03: try number = 156, reading sector 12064 -RS03: try number = 157, reading sector 12180 -RS03: try number = 158, reading sector 12296 -RS03: try number = 159, reading sector 12412 -RS03: try number = 160, reading sector 12528 -RS03: try number = 161, reading sector 12644 -RS03: try number = 162, reading sector 12760 -RS03: try number = 163, reading sector 12876 -RS03: try number = 164, reading sector 12992 -RS03: try number = 165, reading sector 13108 -RS03: try number = 166, reading sector 13224 -RS03: try number = 167, reading sector 13340 -RS03: try number = 168, reading sector 13456 -RS03: try number = 169, reading sector 13572 -RS03: try number = 170, reading sector 13688 -RS03: try number = 171, reading sector 13804 -RS03: try number = 172, reading sector 13920 -RS03: try number = 173, reading sector 14036 -RS03: try number = 174, reading sector 14152 -RS03: try number = 175, reading sector 14268 -RS03: try number = 176, reading sector 14384 -RS03: try number = 177, reading sector 14500 -RS03: try number = 178, reading sector 14616 -RS03: try number = 179, reading sector 14732 -RS03: try number = 180, reading sector 14848 -RS03: try number = 181, reading sector 14964 -RS03: try number = 182, reading sector 15080 -RS03: try number = 183, reading sector 15196 -RS03: try number = 184, reading sector 15312 -RS03: try number = 185, reading sector 15428 -RS03: try number = 186, reading sector 15544 -RS03: try number = 187, reading sector 15660 -RS03: try number = 188, reading sector 15776 -RS03: try number = 189, reading sector 15892 -RS03: try number = 190, reading sector 16008 -RS03: try number = 191, reading sector 16124 -RS03: try number = 192, reading sector 16240 -RS03: try number = 193, reading sector 16356 -RS03: try number = 194, reading sector 16472 -RS03: try number = 195, reading sector 16588 -RS03: try number = 196, reading sector 16704 -RS03: try number = 197, reading sector 16820 -RS03: try number = 198, reading sector 16936 -RS03: try number = 199, reading sector 17052 -RS03: try number = 200, reading sector 17168 -RS03: try number = 201, reading sector 17284 -RS03: try number = 202, reading sector 17400 -RS03: try number = 203, reading sector 17516 -RS03: try number = 204, reading sector 17632 -RS03: try number = 205, reading sector 17748 -RS03: try number = 206, reading sector 17864 -RS03: try number = 207, reading sector 17980 -RS03: try number = 208, reading sector 18096 -RS03: try number = 209, reading sector 18212 -RS03: try number = 210, reading sector 18328 -RS03: try number = 211, reading sector 18444 -RS03: try number = 212, reading sector 18560 -RS03: try number = 213, reading sector 18676 -RS03: try number = 214, reading sector 18792 -RS03: try number = 215, reading sector 18908 -RS03: try number = 216, reading sector 19024 -RS03: try number = 217, reading sector 19140 -RS03: try number = 218, reading sector 19256 -RS03: try number = 219, reading sector 19372 -RS03: try number = 220, reading sector 19488 -RS03: try number = 221, reading sector 19604 -RS03: try number = 222, reading sector 19720 -RS03: try number = 223, reading sector 19836 -RS03: try number = 224, reading sector 19952 -RS03: try number = 225, reading sector 20068 -RS03: try number = 226, reading sector 20184 -RS03: try number = 227, reading sector 20300 -RS03: try number = 228, reading sector 20416 -RS03: try number = 229, reading sector 20532 -RS03: try number = 230, reading sector 20648 -RS03: try number = 231, reading sector 20764 -RS03: try number = 232, reading sector 20880 -RS03: try number = 233, reading sector 20996 -RS03: try number = 234, reading sector 21112 -RS03: try number = 235, reading sector 21228 -RS03: try number = 236, reading sector 21344 -RS03: try number = 237, reading sector 21460 -RS03: try number = 238, reading sector 21576 -RS03: try number = 239, reading sector 21692 -RS03: try number = 240, reading sector 21808 -RS03: try number = 241, reading sector 21924 -RS03: try number = 242, reading sector 22040 -RS03: try number = 243, reading sector 22156 -RS03: try number = 244, reading sector 22272 -RS03: try number = 245, reading sector 22388 -RS03: try number = 246, reading sector 22504 -RS03: try number = 247, reading sector 22620 -RS03: try number = 248, reading sector 22736 -RS03: try number = 249, reading sector 22852 -RS03: try number = 250, reading sector 22968 -RS03: try number = 251, reading sector 23084 -RS03: try number = 252, reading sector 23200 -RS03: try number = 253, reading sector 23316 -RS03: try number = 254, reading sector 23432 -RS03: try number = 255, reading sector 23548 -RS03: try number = 256, reading sector 23664 -RS03: try number = 257, reading sector 23780 -RS03: try number = 258, reading sector 23896 -RS03: try number = 259, reading sector 24012 -RS03: try number = 260, reading sector 24128 -RS03: try number = 261, reading sector 24244 -RS03: try number = 262, reading sector 24360 -RS03: try number = 263, reading sector 24476 -RS03: try number = 264, reading sector 24592 -RS03: try number = 265, reading sector 24708 -RS03: try number = 266, reading sector 24824 -RS03: try number = 267, reading sector 24940 -RS03: try number = 268, reading sector 25056 -RS03: try number = 269, reading sector 25172 -RS03: try number = 270, reading sector 25288 -RS03: try number = 271, reading sector 25404 -RS03: try number = 272, reading sector 25520 -RS03: try number = 273, reading sector 25636 -RS03: try number = 274, reading sector 25752 -RS03: try number = 275, reading sector 25868 -RS03: try number = 276, reading sector 25984 -RS03: try number = 277, reading sector 26100 -RS03: try number = 278, reading sector 26216 -RS03: try number = 279, reading sector 26332 -RS03: try number = 280, reading sector 26448 -RS03: try number = 281, reading sector 26564 -RS03: try number = 282, reading sector 26680 -RS03: try number = 283, reading sector 26796 -RS03: try number = 284, reading sector 26912 -RS03: try number = 285, reading sector 27028 -RS03: try number = 286, reading sector 27144 -RS03: try number = 287, reading sector 27260 -RS03: try number = 288, reading sector 27376 -RS03: try number = 289, reading sector 27492 -RS03: try number = 290, reading sector 27608 -RS03: try number = 291, reading sector 27724 -RS03: try number = 292, reading sector 27840 -RS03: try number = 293, reading sector 27956 -RS03: try number = 294, reading sector 28072 -RS03: try number = 295, reading sector 28188 -RS03: try number = 296, reading sector 28304 -RS03: try number = 297, reading sector 28420 -RS03: try number = 298, reading sector 28536 -RS03: try number = 299, reading sector 28652 -** All layers tested -> no RS03 data found -.. trying layer size 117 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 300, reading sector 9828 -RS03: try number = 301, reading sector 9945 -RS03: try number = 302, reading sector 10062 -RS03: try number = 303, reading sector 10179 -RS03: try number = 304, reading sector 10296 -RS03: try number = 305, reading sector 10413 -RS03: try number = 306, reading sector 10530 -RS03: try number = 307, reading sector 10647 -RS03: try number = 308, reading sector 10764 -RS03: try number = 309, reading sector 10881 -RS03: try number = 310, reading sector 10998 -RS03: try number = 311, reading sector 11115 -RS03: try number = 312, reading sector 11232 -RS03: try number = 313, reading sector 11349 -RS03: try number = 314, reading sector 11466 -RS03: try number = 315, reading sector 11583 -RS03: try number = 316, reading sector 11700 -RS03: try number = 317, reading sector 11817 -RS03: try number = 318, reading sector 11934 -RS03: try number = 319, reading sector 12051 -RS03: try number = 320, reading sector 12168 -RS03: try number = 321, reading sector 12285 -RS03: try number = 322, reading sector 12402 -RS03: try number = 323, reading sector 12519 -RS03: try number = 324, reading sector 12636 -RS03: try number = 325, reading sector 12753 -RS03: try number = 326, reading sector 12870 -RS03: try number = 327, reading sector 12987 -RS03: try number = 328, reading sector 13104 -RS03: try number = 329, reading sector 13221 -RS03: try number = 330, reading sector 13338 -RS03: try number = 331, reading sector 13455 -RS03: try number = 332, reading sector 13572 -RS03: try number = 333, reading sector 13689 -RS03: try number = 334, reading sector 13806 -RS03: try number = 335, reading sector 13923 -RS03: try number = 336, reading sector 14040 -RS03: try number = 337, reading sector 14157 -RS03: try number = 338, reading sector 14274 -RS03: try number = 339, reading sector 14391 -RS03: try number = 340, reading sector 14508 -RS03: try number = 341, reading sector 14625 -RS03: try number = 342, reading sector 14742 -RS03: try number = 343, reading sector 14859 -RS03: try number = 344, reading sector 14976 -RS03: try number = 345, reading sector 15093 -RS03: try number = 346, reading sector 15210 -RS03: try number = 347, reading sector 15327 -RS03: try number = 348, reading sector 15444 -RS03: try number = 349, reading sector 15561 -RS03: try number = 350, reading sector 15678 -RS03: try number = 351, reading sector 15795 -RS03: try number = 352, reading sector 15912 -RS03: try number = 353, reading sector 16029 -RS03: try number = 354, reading sector 16146 -RS03: try number = 355, reading sector 16263 -RS03: try number = 356, reading sector 16380 -RS03: try number = 357, reading sector 16497 -RS03: try number = 358, reading sector 16614 -RS03: try number = 359, reading sector 16731 -RS03: try number = 360, reading sector 16848 -RS03: try number = 361, reading sector 16965 -RS03: try number = 362, reading sector 17082 -RS03: try number = 363, reading sector 17199 -RS03: try number = 364, reading sector 17316 -RS03: try number = 365, reading sector 17433 -RS03: try number = 366, reading sector 17550 -RS03: try number = 367, reading sector 17667 -RS03: try number = 368, reading sector 17784 -RS03: try number = 369, reading sector 17901 -RS03: try number = 370, reading sector 18018 -RS03: try number = 371, reading sector 18135 -RS03: try number = 372, reading sector 18252 -RS03: try number = 373, reading sector 18369 -RS03: try number = 374, reading sector 18486 -RS03: try number = 375, reading sector 18603 -RS03: try number = 376, reading sector 18720 -RS03: try number = 377, reading sector 18837 -RS03: try number = 378, reading sector 18954 -RS03: try number = 379, reading sector 19071 -RS03: try number = 380, reading sector 19188 -RS03: try number = 381, reading sector 19305 -RS03: try number = 382, reading sector 19422 -RS03: try number = 383, reading sector 19539 -RS03: try number = 384, reading sector 19656 -RS03: try number = 385, reading sector 19773 -RS03: try number = 386, reading sector 19890 -RS03: try number = 387, reading sector 20007 -RS03: try number = 388, reading sector 20124 -RS03: try number = 389, reading sector 20241 -RS03: try number = 390, reading sector 20358 -RS03: try number = 391, reading sector 20475 -RS03: try number = 392, reading sector 20592 -RS03: try number = 393, reading sector 20709 -RS03: try number = 394, reading sector 20826 -RS03: try number = 395, reading sector 20943 -RS03: try number = 396, reading sector 21060 -RS03: try number = 397, reading sector 21177 -RS03: try number = 398, reading sector 21294 -RS03: try number = 399, reading sector 21411 -RS03: try number = 400, reading sector 21528 -RS03: try number = 401, reading sector 21645 -RS03: try number = 402, reading sector 21762 -RS03: try number = 403, reading sector 21879 -RS03: try number = 404, reading sector 21996 -RS03: try number = 405, reading sector 22113 -RS03: try number = 406, reading sector 22230 -RS03: try number = 407, reading sector 22347 -RS03: try number = 408, reading sector 22464 -RS03: try number = 409, reading sector 22581 -RS03: try number = 410, reading sector 22698 -RS03: try number = 411, reading sector 22815 -RS03: try number = 412, reading sector 22932 -RS03: try number = 413, reading sector 23049 -RS03: try number = 414, reading sector 23166 -RS03: try number = 415, reading sector 23283 -RS03: try number = 416, reading sector 23400 -RS03: try number = 417, reading sector 23517 -RS03: try number = 418, reading sector 23634 -RS03: try number = 419, reading sector 23751 -RS03: try number = 420, reading sector 23868 -RS03: try number = 421, reading sector 23985 -RS03: try number = 422, reading sector 24102 -RS03: try number = 423, reading sector 24219 -RS03: try number = 424, reading sector 24336 -RS03: try number = 425, reading sector 24453 -RS03: try number = 426, reading sector 24570 -RS03: try number = 427, reading sector 24687 -RS03: try number = 428, reading sector 24804 -RS03: try number = 429, reading sector 24921 -RS03: try number = 430, reading sector 25038 -RS03: try number = 431, reading sector 25155 -RS03: try number = 432, reading sector 25272 -RS03: try number = 433, reading sector 25389 -RS03: try number = 434, reading sector 25506 -RS03: try number = 435, reading sector 25623 -RS03: try number = 436, reading sector 25740 -RS03: try number = 437, reading sector 25857 -RS03: try number = 438, reading sector 25974 -RS03: try number = 439, reading sector 26091 -RS03: try number = 440, reading sector 26208 -RS03: try number = 441, reading sector 26325 -RS03: try number = 442, reading sector 26442 -RS03: try number = 443, reading sector 26559 -RS03: try number = 444, reading sector 26676 -RS03: try number = 445, reading sector 26793 -RS03: try number = 446, reading sector 26910 -RS03: try number = 447, reading sector 27027 -RS03: try number = 448, reading sector 27144 -RS03: try number = 449, reading sector 27261 -RS03: try number = 450, reading sector 27378 -RS03: try number = 451, reading sector 27495 -RS03: try number = 452, reading sector 27612 -RS03: try number = 453, reading sector 27729 -RS03: try number = 454, reading sector 27846 -RS03: try number = 455, reading sector 27963 -RS03: try number = 456, reading sector 28080 -RS03: try number = 457, reading sector 28197 -RS03: try number = 458, reading sector 28314 -RS03: try number = 459, reading sector 28431 -RS03: try number = 460, reading sector 28548 -RS03: try number = 461, reading sector 28665 -RS03: try number = 462, reading sector 28782 -RS03: try number = 463, reading sector 28899 -** All layers tested -> no RS03 data found -.. trying layer size 118 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 464, reading sector 9912 -RS03: try number = 465, reading sector 10030 -RS03: try number = 466, reading sector 10148 -RS03: try number = 467, reading sector 10266 -RS03: try number = 468, reading sector 10384 -RS03: try number = 469, reading sector 10502 -RS03: try number = 470, reading sector 10620 -RS03: try number = 471, reading sector 10738 -RS03: try number = 472, reading sector 10856 -RS03: try number = 473, reading sector 10974 -RS03: try number = 474, reading sector 11092 -RS03: try number = 475, reading sector 11210 -RS03: try number = 476, reading sector 11328 -RS03: try number = 477, reading sector 11446 -RS03: try number = 478, reading sector 11564 -RS03: try number = 479, reading sector 11682 -RS03: try number = 480, reading sector 11800 -RS03: try number = 481, reading sector 11918 -RS03: try number = 482, reading sector 12036 -RS03: try number = 483, reading sector 12154 -RS03: try number = 484, reading sector 12272 -RS03: try number = 485, reading sector 12390 -RS03: try number = 486, reading sector 12508 -RS03: try number = 487, reading sector 12626 -RS03: try number = 488, reading sector 12744 -RS03: try number = 489, reading sector 12862 -RS03: try number = 490, reading sector 12980 -RS03: try number = 491, reading sector 13098 -RS03: try number = 492, reading sector 13216 -RS03: try number = 493, reading sector 13334 -RS03: try number = 494, reading sector 13452 -RS03: try number = 495, reading sector 13570 -RS03: try number = 496, reading sector 13688 -RS03: try number = 497, reading sector 13806 -RS03: try number = 498, reading sector 13924 -RS03: try number = 499, reading sector 14042 -RS03: try number = 500, reading sector 14160 -RS03: try number = 501, reading sector 14278 -RS03: try number = 502, reading sector 14396 -RS03: try number = 503, reading sector 14514 -RS03: try number = 504, reading sector 14632 -RS03: try number = 505, reading sector 14750 -RS03: try number = 506, reading sector 14868 -RS03: try number = 507, reading sector 14986 -RS03: try number = 508, reading sector 15104 -RS03: try number = 509, reading sector 15222 -RS03: try number = 510, reading sector 15340 -RS03: try number = 511, reading sector 15458 -RS03: try number = 512, reading sector 15576 -RS03: try number = 513, reading sector 15694 -RS03: try number = 514, reading sector 15812 -RS03: try number = 515, reading sector 15930 -RS03: try number = 516, reading sector 16048 -RS03: try number = 517, reading sector 16166 -RS03: try number = 518, reading sector 16284 -RS03: try number = 519, reading sector 16402 -RS03: try number = 520, reading sector 16520 -RS03: try number = 521, reading sector 16638 -RS03: try number = 522, reading sector 16756 -RS03: try number = 523, reading sector 16874 -RS03: try number = 524, reading sector 16992 -RS03: try number = 525, reading sector 17110 -RS03: try number = 526, reading sector 17228 -RS03: try number = 527, reading sector 17346 -RS03: try number = 528, reading sector 17464 -RS03: try number = 529, reading sector 17582 -RS03: try number = 530, reading sector 17700 -RS03: try number = 531, reading sector 17818 -RS03: try number = 532, reading sector 17936 -RS03: try number = 533, reading sector 18054 -RS03: try number = 534, reading sector 18172 -RS03: try number = 535, reading sector 18290 -RS03: try number = 536, reading sector 18408 -RS03: try number = 537, reading sector 18526 -RS03: try number = 538, reading sector 18644 -RS03: try number = 539, reading sector 18762 -RS03: try number = 540, reading sector 18880 -RS03: try number = 541, reading sector 18998 -RS03: try number = 542, reading sector 19116 -RS03: try number = 543, reading sector 19234 -RS03: try number = 544, reading sector 19352 -RS03: try number = 545, reading sector 19470 -RS03: try number = 546, reading sector 19588 -RS03: try number = 547, reading sector 19706 -RS03: try number = 548, reading sector 19824 -RS03: try number = 549, reading sector 19942 -RS03: try number = 550, reading sector 20060 -RS03: try number = 551, reading sector 20178 -RS03: try number = 552, reading sector 20296 -RS03: try number = 553, reading sector 20414 -RS03: try number = 554, reading sector 20532 -RS03: try number = 555, reading sector 20650 -RS03: try number = 556, reading sector 20768 -RS03: try number = 557, reading sector 20886 -RS03: try number = 558, reading sector 21004 -RS03: try number = 559, reading sector 21122 -RS03: try number = 560, reading sector 21240 -RS03: try number = 561, reading sector 21358 -RS03: try number = 562, reading sector 21476 -RS03: try number = 563, reading sector 21594 -RS03: try number = 564, reading sector 21712 -RS03: try number = 565, reading sector 21830 -RS03: try number = 566, reading sector 21948 -RS03: try number = 567, reading sector 22066 -RS03: try number = 568, reading sector 22184 -RS03: try number = 569, reading sector 22302 -RS03: try number = 570, reading sector 22420 -RS03: try number = 571, reading sector 22538 -RS03: try number = 572, reading sector 22656 -RS03: try number = 573, reading sector 22774 -RS03: try number = 574, reading sector 22892 -RS03: try number = 575, reading sector 23010 -RS03: try number = 576, reading sector 23128 -RS03: try number = 577, reading sector 23246 -RS03: try number = 578, reading sector 23364 -RS03: try number = 579, reading sector 23482 -RS03: try number = 580, reading sector 23600 -RS03: try number = 581, reading sector 23718 -RS03: try number = 582, reading sector 23836 -RS03: try number = 583, reading sector 23954 -RS03: try number = 584, reading sector 24072 -RS03: try number = 585, reading sector 24190 -RS03: try number = 586, reading sector 24308 -RS03: try number = 587, reading sector 24426 -RS03: try number = 588, reading sector 24544 -RS03: try number = 589, reading sector 24662 -RS03: try number = 590, reading sector 24780 -RS03: try number = 591, reading sector 24898 -RS03: try number = 592, reading sector 25016 -RS03: try number = 593, reading sector 25134 -RS03: try number = 594, reading sector 25252 -RS03: try number = 595, reading sector 25370 -RS03: try number = 596, reading sector 25488 -RS03: try number = 597, reading sector 25606 -RS03: try number = 598, reading sector 25724 -RS03: try number = 599, reading sector 25842 -RS03: try number = 600, reading sector 25960 -RS03: try number = 601, reading sector 26078 -RS03: try number = 602, reading sector 26196 -RS03: try number = 603, reading sector 26314 -RS03: try number = 604, reading sector 26432 -RS03: try number = 605, reading sector 26550 -RS03: try number = 606, reading sector 26668 -RS03: try number = 607, reading sector 26786 -RS03: try number = 608, reading sector 26904 -RS03: try number = 609, reading sector 27022 -RS03: try number = 610, reading sector 27140 -RS03: try number = 611, reading sector 27258 -RS03: try number = 612, reading sector 27376 -RS03: try number = 613, reading sector 27494 -RS03: try number = 614, reading sector 27612 -RS03: try number = 615, reading sector 27730 -RS03: try number = 616, reading sector 27848 -RS03: try number = 617, reading sector 27966 -RS03: try number = 618, reading sector 28084 -RS03: try number = 619, reading sector 28202 -RS03: try number = 620, reading sector 28320 -RS03: try number = 621, reading sector 28438 -RS03: try number = 622, reading sector 28556 -RS03: try number = 623, reading sector 28674 -RS03: try number = 624, reading sector 28792 -RS03: try number = 625, reading sector 28910 -RS03: try number = 626, reading sector 29028 -RS03: try number = 627, reading sector 29146 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS02_ecc_recreate_after_read_rs01 b/regtest/database/RS02_ecc_recreate_after_read_rs01 index 58ae8472..77302695 100644 --- a/regtest/database/RS02_ecc_recreate_after_read_rs01 +++ b/regtest/database/RS02_ecc_recreate_after_read_rs01 @@ -442,511 +442,6 @@ RS03: try number = 133, reading sector 29592 RS03: try number = 134, reading sector 29729 RS03: try number = 135, reading sector 29866 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 116 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 136, reading sector 9744 -RS03: try number = 137, reading sector 9860 -RS03: try number = 138, reading sector 9976 -RS03: try number = 139, reading sector 10092 -RS03: try number = 140, reading sector 10208 -RS03: try number = 141, reading sector 10324 -RS03: try number = 142, reading sector 10440 -RS03: try number = 143, reading sector 10556 -RS03: try number = 144, reading sector 10672 -RS03: try number = 145, reading sector 10788 -RS03: try number = 146, reading sector 10904 -RS03: try number = 147, reading sector 11020 -RS03: try number = 148, reading sector 11136 -RS03: try number = 149, reading sector 11252 -RS03: try number = 150, reading sector 11368 -RS03: try number = 151, reading sector 11484 -RS03: try number = 152, reading sector 11600 -RS03: try number = 153, reading sector 11716 -RS03: try number = 154, reading sector 11832 -RS03: try number = 155, reading sector 11948 -RS03: try number = 156, reading sector 12064 -RS03: try number = 157, reading sector 12180 -RS03: try number = 158, reading sector 12296 -RS03: try number = 159, reading sector 12412 -RS03: try number = 160, reading sector 12528 -RS03: try number = 161, reading sector 12644 -RS03: try number = 162, reading sector 12760 -RS03: try number = 163, reading sector 12876 -RS03: try number = 164, reading sector 12992 -RS03: try number = 165, reading sector 13108 -RS03: try number = 166, reading sector 13224 -RS03: try number = 167, reading sector 13340 -RS03: try number = 168, reading sector 13456 -RS03: try number = 169, reading sector 13572 -RS03: try number = 170, reading sector 13688 -RS03: try number = 171, reading sector 13804 -RS03: try number = 172, reading sector 13920 -RS03: try number = 173, reading sector 14036 -RS03: try number = 174, reading sector 14152 -RS03: try number = 175, reading sector 14268 -RS03: try number = 176, reading sector 14384 -RS03: try number = 177, reading sector 14500 -RS03: try number = 178, reading sector 14616 -RS03: try number = 179, reading sector 14732 -RS03: try number = 180, reading sector 14848 -RS03: try number = 181, reading sector 14964 -RS03: try number = 182, reading sector 15080 -RS03: try number = 183, reading sector 15196 -RS03: try number = 184, reading sector 15312 -RS03: try number = 185, reading sector 15428 -RS03: try number = 186, reading sector 15544 -RS03: try number = 187, reading sector 15660 -RS03: try number = 188, reading sector 15776 -RS03: try number = 189, reading sector 15892 -RS03: try number = 190, reading sector 16008 -RS03: try number = 191, reading sector 16124 -RS03: try number = 192, reading sector 16240 -RS03: try number = 193, reading sector 16356 -RS03: try number = 194, reading sector 16472 -RS03: try number = 195, reading sector 16588 -RS03: try number = 196, reading sector 16704 -RS03: try number = 197, reading sector 16820 -RS03: try number = 198, reading sector 16936 -RS03: try number = 199, reading sector 17052 -RS03: try number = 200, reading sector 17168 -RS03: try number = 201, reading sector 17284 -RS03: try number = 202, reading sector 17400 -RS03: try number = 203, reading sector 17516 -RS03: try number = 204, reading sector 17632 -RS03: try number = 205, reading sector 17748 -RS03: try number = 206, reading sector 17864 -RS03: try number = 207, reading sector 17980 -RS03: try number = 208, reading sector 18096 -RS03: try number = 209, reading sector 18212 -RS03: try number = 210, reading sector 18328 -RS03: try number = 211, reading sector 18444 -RS03: try number = 212, reading sector 18560 -RS03: try number = 213, reading sector 18676 -RS03: try number = 214, reading sector 18792 -RS03: try number = 215, reading sector 18908 -RS03: try number = 216, reading sector 19024 -RS03: try number = 217, reading sector 19140 -RS03: try number = 218, reading sector 19256 -RS03: try number = 219, reading sector 19372 -RS03: try number = 220, reading sector 19488 -RS03: try number = 221, reading sector 19604 -RS03: try number = 222, reading sector 19720 -RS03: try number = 223, reading sector 19836 -RS03: try number = 224, reading sector 19952 -RS03: try number = 225, reading sector 20068 -RS03: try number = 226, reading sector 20184 -RS03: try number = 227, reading sector 20300 -RS03: try number = 228, reading sector 20416 -RS03: try number = 229, reading sector 20532 -RS03: try number = 230, reading sector 20648 -RS03: try number = 231, reading sector 20764 -RS03: try number = 232, reading sector 20880 -RS03: try number = 233, reading sector 20996 -RS03: try number = 234, reading sector 21112 -RS03: try number = 235, reading sector 21228 -RS03: try number = 236, reading sector 21344 -RS03: try number = 237, reading sector 21460 -RS03: try number = 238, reading sector 21576 -RS03: try number = 239, reading sector 21692 -RS03: try number = 240, reading sector 21808 -RS03: try number = 241, reading sector 21924 -RS03: try number = 242, reading sector 22040 -RS03: try number = 243, reading sector 22156 -RS03: try number = 244, reading sector 22272 -RS03: try number = 245, reading sector 22388 -RS03: try number = 246, reading sector 22504 -RS03: try number = 247, reading sector 22620 -RS03: try number = 248, reading sector 22736 -RS03: try number = 249, reading sector 22852 -RS03: try number = 250, reading sector 22968 -RS03: try number = 251, reading sector 23084 -RS03: try number = 252, reading sector 23200 -RS03: try number = 253, reading sector 23316 -RS03: try number = 254, reading sector 23432 -RS03: try number = 255, reading sector 23548 -RS03: try number = 256, reading sector 23664 -RS03: try number = 257, reading sector 23780 -RS03: try number = 258, reading sector 23896 -RS03: try number = 259, reading sector 24012 -RS03: try number = 260, reading sector 24128 -RS03: try number = 261, reading sector 24244 -RS03: try number = 262, reading sector 24360 -RS03: try number = 263, reading sector 24476 -RS03: try number = 264, reading sector 24592 -RS03: try number = 265, reading sector 24708 -RS03: try number = 266, reading sector 24824 -RS03: try number = 267, reading sector 24940 -RS03: try number = 268, reading sector 25056 -RS03: try number = 269, reading sector 25172 -RS03: try number = 270, reading sector 25288 -RS03: try number = 271, reading sector 25404 -RS03: try number = 272, reading sector 25520 -RS03: try number = 273, reading sector 25636 -RS03: try number = 274, reading sector 25752 -RS03: try number = 275, reading sector 25868 -RS03: try number = 276, reading sector 25984 -RS03: try number = 277, reading sector 26100 -RS03: try number = 278, reading sector 26216 -RS03: try number = 279, reading sector 26332 -RS03: try number = 280, reading sector 26448 -RS03: try number = 281, reading sector 26564 -RS03: try number = 282, reading sector 26680 -RS03: try number = 283, reading sector 26796 -RS03: try number = 284, reading sector 26912 -RS03: try number = 285, reading sector 27028 -RS03: try number = 286, reading sector 27144 -RS03: try number = 287, reading sector 27260 -RS03: try number = 288, reading sector 27376 -RS03: try number = 289, reading sector 27492 -RS03: try number = 290, reading sector 27608 -RS03: try number = 291, reading sector 27724 -RS03: try number = 292, reading sector 27840 -RS03: try number = 293, reading sector 27956 -RS03: try number = 294, reading sector 28072 -RS03: try number = 295, reading sector 28188 -RS03: try number = 296, reading sector 28304 -RS03: try number = 297, reading sector 28420 -RS03: try number = 298, reading sector 28536 -RS03: try number = 299, reading sector 28652 -** All layers tested -> no RS03 data found -.. trying layer size 117 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 300, reading sector 9828 -RS03: try number = 301, reading sector 9945 -RS03: try number = 302, reading sector 10062 -RS03: try number = 303, reading sector 10179 -RS03: try number = 304, reading sector 10296 -RS03: try number = 305, reading sector 10413 -RS03: try number = 306, reading sector 10530 -RS03: try number = 307, reading sector 10647 -RS03: try number = 308, reading sector 10764 -RS03: try number = 309, reading sector 10881 -RS03: try number = 310, reading sector 10998 -RS03: try number = 311, reading sector 11115 -RS03: try number = 312, reading sector 11232 -RS03: try number = 313, reading sector 11349 -RS03: try number = 314, reading sector 11466 -RS03: try number = 315, reading sector 11583 -RS03: try number = 316, reading sector 11700 -RS03: try number = 317, reading sector 11817 -RS03: try number = 318, reading sector 11934 -RS03: try number = 319, reading sector 12051 -RS03: try number = 320, reading sector 12168 -RS03: try number = 321, reading sector 12285 -RS03: try number = 322, reading sector 12402 -RS03: try number = 323, reading sector 12519 -RS03: try number = 324, reading sector 12636 -RS03: try number = 325, reading sector 12753 -RS03: try number = 326, reading sector 12870 -RS03: try number = 327, reading sector 12987 -RS03: try number = 328, reading sector 13104 -RS03: try number = 329, reading sector 13221 -RS03: try number = 330, reading sector 13338 -RS03: try number = 331, reading sector 13455 -RS03: try number = 332, reading sector 13572 -RS03: try number = 333, reading sector 13689 -RS03: try number = 334, reading sector 13806 -RS03: try number = 335, reading sector 13923 -RS03: try number = 336, reading sector 14040 -RS03: try number = 337, reading sector 14157 -RS03: try number = 338, reading sector 14274 -RS03: try number = 339, reading sector 14391 -RS03: try number = 340, reading sector 14508 -RS03: try number = 341, reading sector 14625 -RS03: try number = 342, reading sector 14742 -RS03: try number = 343, reading sector 14859 -RS03: try number = 344, reading sector 14976 -RS03: try number = 345, reading sector 15093 -RS03: try number = 346, reading sector 15210 -RS03: try number = 347, reading sector 15327 -RS03: try number = 348, reading sector 15444 -RS03: try number = 349, reading sector 15561 -RS03: try number = 350, reading sector 15678 -RS03: try number = 351, reading sector 15795 -RS03: try number = 352, reading sector 15912 -RS03: try number = 353, reading sector 16029 -RS03: try number = 354, reading sector 16146 -RS03: try number = 355, reading sector 16263 -RS03: try number = 356, reading sector 16380 -RS03: try number = 357, reading sector 16497 -RS03: try number = 358, reading sector 16614 -RS03: try number = 359, reading sector 16731 -RS03: try number = 360, reading sector 16848 -RS03: try number = 361, reading sector 16965 -RS03: try number = 362, reading sector 17082 -RS03: try number = 363, reading sector 17199 -RS03: try number = 364, reading sector 17316 -RS03: try number = 365, reading sector 17433 -RS03: try number = 366, reading sector 17550 -RS03: try number = 367, reading sector 17667 -RS03: try number = 368, reading sector 17784 -RS03: try number = 369, reading sector 17901 -RS03: try number = 370, reading sector 18018 -RS03: try number = 371, reading sector 18135 -RS03: try number = 372, reading sector 18252 -RS03: try number = 373, reading sector 18369 -RS03: try number = 374, reading sector 18486 -RS03: try number = 375, reading sector 18603 -RS03: try number = 376, reading sector 18720 -RS03: try number = 377, reading sector 18837 -RS03: try number = 378, reading sector 18954 -RS03: try number = 379, reading sector 19071 -RS03: try number = 380, reading sector 19188 -RS03: try number = 381, reading sector 19305 -RS03: try number = 382, reading sector 19422 -RS03: try number = 383, reading sector 19539 -RS03: try number = 384, reading sector 19656 -RS03: try number = 385, reading sector 19773 -RS03: try number = 386, reading sector 19890 -RS03: try number = 387, reading sector 20007 -RS03: try number = 388, reading sector 20124 -RS03: try number = 389, reading sector 20241 -RS03: try number = 390, reading sector 20358 -RS03: try number = 391, reading sector 20475 -RS03: try number = 392, reading sector 20592 -RS03: try number = 393, reading sector 20709 -RS03: try number = 394, reading sector 20826 -RS03: try number = 395, reading sector 20943 -RS03: try number = 396, reading sector 21060 -RS03: try number = 397, reading sector 21177 -RS03: try number = 398, reading sector 21294 -RS03: try number = 399, reading sector 21411 -RS03: try number = 400, reading sector 21528 -RS03: try number = 401, reading sector 21645 -RS03: try number = 402, reading sector 21762 -RS03: try number = 403, reading sector 21879 -RS03: try number = 404, reading sector 21996 -RS03: try number = 405, reading sector 22113 -RS03: try number = 406, reading sector 22230 -RS03: try number = 407, reading sector 22347 -RS03: try number = 408, reading sector 22464 -RS03: try number = 409, reading sector 22581 -RS03: try number = 410, reading sector 22698 -RS03: try number = 411, reading sector 22815 -RS03: try number = 412, reading sector 22932 -RS03: try number = 413, reading sector 23049 -RS03: try number = 414, reading sector 23166 -RS03: try number = 415, reading sector 23283 -RS03: try number = 416, reading sector 23400 -RS03: try number = 417, reading sector 23517 -RS03: try number = 418, reading sector 23634 -RS03: try number = 419, reading sector 23751 -RS03: try number = 420, reading sector 23868 -RS03: try number = 421, reading sector 23985 -RS03: try number = 422, reading sector 24102 -RS03: try number = 423, reading sector 24219 -RS03: try number = 424, reading sector 24336 -RS03: try number = 425, reading sector 24453 -RS03: try number = 426, reading sector 24570 -RS03: try number = 427, reading sector 24687 -RS03: try number = 428, reading sector 24804 -RS03: try number = 429, reading sector 24921 -RS03: try number = 430, reading sector 25038 -RS03: try number = 431, reading sector 25155 -RS03: try number = 432, reading sector 25272 -RS03: try number = 433, reading sector 25389 -RS03: try number = 434, reading sector 25506 -RS03: try number = 435, reading sector 25623 -RS03: try number = 436, reading sector 25740 -RS03: try number = 437, reading sector 25857 -RS03: try number = 438, reading sector 25974 -RS03: try number = 439, reading sector 26091 -RS03: try number = 440, reading sector 26208 -RS03: try number = 441, reading sector 26325 -RS03: try number = 442, reading sector 26442 -RS03: try number = 443, reading sector 26559 -RS03: try number = 444, reading sector 26676 -RS03: try number = 445, reading sector 26793 -RS03: try number = 446, reading sector 26910 -RS03: try number = 447, reading sector 27027 -RS03: try number = 448, reading sector 27144 -RS03: try number = 449, reading sector 27261 -RS03: try number = 450, reading sector 27378 -RS03: try number = 451, reading sector 27495 -RS03: try number = 452, reading sector 27612 -RS03: try number = 453, reading sector 27729 -RS03: try number = 454, reading sector 27846 -RS03: try number = 455, reading sector 27963 -RS03: try number = 456, reading sector 28080 -RS03: try number = 457, reading sector 28197 -RS03: try number = 458, reading sector 28314 -RS03: try number = 459, reading sector 28431 -RS03: try number = 460, reading sector 28548 -RS03: try number = 461, reading sector 28665 -RS03: try number = 462, reading sector 28782 -RS03: try number = 463, reading sector 28899 -** All layers tested -> no RS03 data found -.. trying layer size 118 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 464, reading sector 9912 -RS03: try number = 465, reading sector 10030 -RS03: try number = 466, reading sector 10148 -RS03: try number = 467, reading sector 10266 -RS03: try number = 468, reading sector 10384 -RS03: try number = 469, reading sector 10502 -RS03: try number = 470, reading sector 10620 -RS03: try number = 471, reading sector 10738 -RS03: try number = 472, reading sector 10856 -RS03: try number = 473, reading sector 10974 -RS03: try number = 474, reading sector 11092 -RS03: try number = 475, reading sector 11210 -RS03: try number = 476, reading sector 11328 -RS03: try number = 477, reading sector 11446 -RS03: try number = 478, reading sector 11564 -RS03: try number = 479, reading sector 11682 -RS03: try number = 480, reading sector 11800 -RS03: try number = 481, reading sector 11918 -RS03: try number = 482, reading sector 12036 -RS03: try number = 483, reading sector 12154 -RS03: try number = 484, reading sector 12272 -RS03: try number = 485, reading sector 12390 -RS03: try number = 486, reading sector 12508 -RS03: try number = 487, reading sector 12626 -RS03: try number = 488, reading sector 12744 -RS03: try number = 489, reading sector 12862 -RS03: try number = 490, reading sector 12980 -RS03: try number = 491, reading sector 13098 -RS03: try number = 492, reading sector 13216 -RS03: try number = 493, reading sector 13334 -RS03: try number = 494, reading sector 13452 -RS03: try number = 495, reading sector 13570 -RS03: try number = 496, reading sector 13688 -RS03: try number = 497, reading sector 13806 -RS03: try number = 498, reading sector 13924 -RS03: try number = 499, reading sector 14042 -RS03: try number = 500, reading sector 14160 -RS03: try number = 501, reading sector 14278 -RS03: try number = 502, reading sector 14396 -RS03: try number = 503, reading sector 14514 -RS03: try number = 504, reading sector 14632 -RS03: try number = 505, reading sector 14750 -RS03: try number = 506, reading sector 14868 -RS03: try number = 507, reading sector 14986 -RS03: try number = 508, reading sector 15104 -RS03: try number = 509, reading sector 15222 -RS03: try number = 510, reading sector 15340 -RS03: try number = 511, reading sector 15458 -RS03: try number = 512, reading sector 15576 -RS03: try number = 513, reading sector 15694 -RS03: try number = 514, reading sector 15812 -RS03: try number = 515, reading sector 15930 -RS03: try number = 516, reading sector 16048 -RS03: try number = 517, reading sector 16166 -RS03: try number = 518, reading sector 16284 -RS03: try number = 519, reading sector 16402 -RS03: try number = 520, reading sector 16520 -RS03: try number = 521, reading sector 16638 -RS03: try number = 522, reading sector 16756 -RS03: try number = 523, reading sector 16874 -RS03: try number = 524, reading sector 16992 -RS03: try number = 525, reading sector 17110 -RS03: try number = 526, reading sector 17228 -RS03: try number = 527, reading sector 17346 -RS03: try number = 528, reading sector 17464 -RS03: try number = 529, reading sector 17582 -RS03: try number = 530, reading sector 17700 -RS03: try number = 531, reading sector 17818 -RS03: try number = 532, reading sector 17936 -RS03: try number = 533, reading sector 18054 -RS03: try number = 534, reading sector 18172 -RS03: try number = 535, reading sector 18290 -RS03: try number = 536, reading sector 18408 -RS03: try number = 537, reading sector 18526 -RS03: try number = 538, reading sector 18644 -RS03: try number = 539, reading sector 18762 -RS03: try number = 540, reading sector 18880 -RS03: try number = 541, reading sector 18998 -RS03: try number = 542, reading sector 19116 -RS03: try number = 543, reading sector 19234 -RS03: try number = 544, reading sector 19352 -RS03: try number = 545, reading sector 19470 -RS03: try number = 546, reading sector 19588 -RS03: try number = 547, reading sector 19706 -RS03: try number = 548, reading sector 19824 -RS03: try number = 549, reading sector 19942 -RS03: try number = 550, reading sector 20060 -RS03: try number = 551, reading sector 20178 -RS03: try number = 552, reading sector 20296 -RS03: try number = 553, reading sector 20414 -RS03: try number = 554, reading sector 20532 -RS03: try number = 555, reading sector 20650 -RS03: try number = 556, reading sector 20768 -RS03: try number = 557, reading sector 20886 -RS03: try number = 558, reading sector 21004 -RS03: try number = 559, reading sector 21122 -RS03: try number = 560, reading sector 21240 -RS03: try number = 561, reading sector 21358 -RS03: try number = 562, reading sector 21476 -RS03: try number = 563, reading sector 21594 -RS03: try number = 564, reading sector 21712 -RS03: try number = 565, reading sector 21830 -RS03: try number = 566, reading sector 21948 -RS03: try number = 567, reading sector 22066 -RS03: try number = 568, reading sector 22184 -RS03: try number = 569, reading sector 22302 -RS03: try number = 570, reading sector 22420 -RS03: try number = 571, reading sector 22538 -RS03: try number = 572, reading sector 22656 -RS03: try number = 573, reading sector 22774 -RS03: try number = 574, reading sector 22892 -RS03: try number = 575, reading sector 23010 -RS03: try number = 576, reading sector 23128 -RS03: try number = 577, reading sector 23246 -RS03: try number = 578, reading sector 23364 -RS03: try number = 579, reading sector 23482 -RS03: try number = 580, reading sector 23600 -RS03: try number = 581, reading sector 23718 -RS03: try number = 582, reading sector 23836 -RS03: try number = 583, reading sector 23954 -RS03: try number = 584, reading sector 24072 -RS03: try number = 585, reading sector 24190 -RS03: try number = 586, reading sector 24308 -RS03: try number = 587, reading sector 24426 -RS03: try number = 588, reading sector 24544 -RS03: try number = 589, reading sector 24662 -RS03: try number = 590, reading sector 24780 -RS03: try number = 591, reading sector 24898 -RS03: try number = 592, reading sector 25016 -RS03: try number = 593, reading sector 25134 -RS03: try number = 594, reading sector 25252 -RS03: try number = 595, reading sector 25370 -RS03: try number = 596, reading sector 25488 -RS03: try number = 597, reading sector 25606 -RS03: try number = 598, reading sector 25724 -RS03: try number = 599, reading sector 25842 -RS03: try number = 600, reading sector 25960 -RS03: try number = 601, reading sector 26078 -RS03: try number = 602, reading sector 26196 -RS03: try number = 603, reading sector 26314 -RS03: try number = 604, reading sector 26432 -RS03: try number = 605, reading sector 26550 -RS03: try number = 606, reading sector 26668 -RS03: try number = 607, reading sector 26786 -RS03: try number = 608, reading sector 26904 -RS03: try number = 609, reading sector 27022 -RS03: try number = 610, reading sector 27140 -RS03: try number = 611, reading sector 27258 -RS03: try number = 612, reading sector 27376 -RS03: try number = 613, reading sector 27494 -RS03: try number = 614, reading sector 27612 -RS03: try number = 615, reading sector 27730 -RS03: try number = 616, reading sector 27848 -RS03: try number = 617, reading sector 27966 -RS03: try number = 618, reading sector 28084 -RS03: try number = 619, reading sector 28202 -RS03: try number = 620, reading sector 28320 -RS03: try number = 621, reading sector 28438 -RS03: try number = 622, reading sector 28556 -RS03: try number = 623, reading sector 28674 -RS03: try number = 624, reading sector 28792 -RS03: try number = 625, reading sector 28910 -RS03: try number = 626, reading sector 29028 -RS03: try number = 627, reading sector 29146 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS02_strip_ecc_not b/regtest/database/RS02_strip_ecc_not index 004cb4e0..9f98bb84 100644 --- a/regtest/database/RS02_strip_ecc_not +++ b/regtest/database/RS02_strip_ecc_not @@ -133,511 +133,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 116 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 9744 -RS03: try number = 2, reading sector 9860 -RS03: try number = 3, reading sector 9976 -RS03: try number = 4, reading sector 10092 -RS03: try number = 5, reading sector 10208 -RS03: try number = 6, reading sector 10324 -RS03: try number = 7, reading sector 10440 -RS03: try number = 8, reading sector 10556 -RS03: try number = 9, reading sector 10672 -RS03: try number = 10, reading sector 10788 -RS03: try number = 11, reading sector 10904 -RS03: try number = 12, reading sector 11020 -RS03: try number = 13, reading sector 11136 -RS03: try number = 14, reading sector 11252 -RS03: try number = 15, reading sector 11368 -RS03: try number = 16, reading sector 11484 -RS03: try number = 17, reading sector 11600 -RS03: try number = 18, reading sector 11716 -RS03: try number = 19, reading sector 11832 -RS03: try number = 20, reading sector 11948 -RS03: try number = 21, reading sector 12064 -RS03: try number = 22, reading sector 12180 -RS03: try number = 23, reading sector 12296 -RS03: try number = 24, reading sector 12412 -RS03: try number = 25, reading sector 12528 -RS03: try number = 26, reading sector 12644 -RS03: try number = 27, reading sector 12760 -RS03: try number = 28, reading sector 12876 -RS03: try number = 29, reading sector 12992 -RS03: try number = 30, reading sector 13108 -RS03: try number = 31, reading sector 13224 -RS03: try number = 32, reading sector 13340 -RS03: try number = 33, reading sector 13456 -RS03: try number = 34, reading sector 13572 -RS03: try number = 35, reading sector 13688 -RS03: try number = 36, reading sector 13804 -RS03: try number = 37, reading sector 13920 -RS03: try number = 38, reading sector 14036 -RS03: try number = 39, reading sector 14152 -RS03: try number = 40, reading sector 14268 -RS03: try number = 41, reading sector 14384 -RS03: try number = 42, reading sector 14500 -RS03: try number = 43, reading sector 14616 -RS03: try number = 44, reading sector 14732 -RS03: try number = 45, reading sector 14848 -RS03: try number = 46, reading sector 14964 -RS03: try number = 47, reading sector 15080 -RS03: try number = 48, reading sector 15196 -RS03: try number = 49, reading sector 15312 -RS03: try number = 50, reading sector 15428 -RS03: try number = 51, reading sector 15544 -RS03: try number = 52, reading sector 15660 -RS03: try number = 53, reading sector 15776 -RS03: try number = 54, reading sector 15892 -RS03: try number = 55, reading sector 16008 -RS03: try number = 56, reading sector 16124 -RS03: try number = 57, reading sector 16240 -RS03: try number = 58, reading sector 16356 -RS03: try number = 59, reading sector 16472 -RS03: try number = 60, reading sector 16588 -RS03: try number = 61, reading sector 16704 -RS03: try number = 62, reading sector 16820 -RS03: try number = 63, reading sector 16936 -RS03: try number = 64, reading sector 17052 -RS03: try number = 65, reading sector 17168 -RS03: try number = 66, reading sector 17284 -RS03: try number = 67, reading sector 17400 -RS03: try number = 68, reading sector 17516 -RS03: try number = 69, reading sector 17632 -RS03: try number = 70, reading sector 17748 -RS03: try number = 71, reading sector 17864 -RS03: try number = 72, reading sector 17980 -RS03: try number = 73, reading sector 18096 -RS03: try number = 74, reading sector 18212 -RS03: try number = 75, reading sector 18328 -RS03: try number = 76, reading sector 18444 -RS03: try number = 77, reading sector 18560 -RS03: try number = 78, reading sector 18676 -RS03: try number = 79, reading sector 18792 -RS03: try number = 80, reading sector 18908 -RS03: try number = 81, reading sector 19024 -RS03: try number = 82, reading sector 19140 -RS03: try number = 83, reading sector 19256 -RS03: try number = 84, reading sector 19372 -RS03: try number = 85, reading sector 19488 -RS03: try number = 86, reading sector 19604 -RS03: try number = 87, reading sector 19720 -RS03: try number = 88, reading sector 19836 -RS03: try number = 89, reading sector 19952 -RS03: try number = 90, reading sector 20068 -RS03: try number = 91, reading sector 20184 -RS03: try number = 92, reading sector 20300 -RS03: try number = 93, reading sector 20416 -RS03: try number = 94, reading sector 20532 -RS03: try number = 95, reading sector 20648 -RS03: try number = 96, reading sector 20764 -RS03: try number = 97, reading sector 20880 -RS03: try number = 98, reading sector 20996 -RS03: try number = 99, reading sector 21112 -RS03: try number = 100, reading sector 21228 -RS03: try number = 101, reading sector 21344 -RS03: try number = 102, reading sector 21460 -RS03: try number = 103, reading sector 21576 -RS03: try number = 104, reading sector 21692 -RS03: try number = 105, reading sector 21808 -RS03: try number = 106, reading sector 21924 -RS03: try number = 107, reading sector 22040 -RS03: try number = 108, reading sector 22156 -RS03: try number = 109, reading sector 22272 -RS03: try number = 110, reading sector 22388 -RS03: try number = 111, reading sector 22504 -RS03: try number = 112, reading sector 22620 -RS03: try number = 113, reading sector 22736 -RS03: try number = 114, reading sector 22852 -RS03: try number = 115, reading sector 22968 -RS03: try number = 116, reading sector 23084 -RS03: try number = 117, reading sector 23200 -RS03: try number = 118, reading sector 23316 -RS03: try number = 119, reading sector 23432 -RS03: try number = 120, reading sector 23548 -RS03: try number = 121, reading sector 23664 -RS03: try number = 122, reading sector 23780 -RS03: try number = 123, reading sector 23896 -RS03: try number = 124, reading sector 24012 -RS03: try number = 125, reading sector 24128 -RS03: try number = 126, reading sector 24244 -RS03: try number = 127, reading sector 24360 -RS03: try number = 128, reading sector 24476 -RS03: try number = 129, reading sector 24592 -RS03: try number = 130, reading sector 24708 -RS03: try number = 131, reading sector 24824 -RS03: try number = 132, reading sector 24940 -RS03: try number = 133, reading sector 25056 -RS03: try number = 134, reading sector 25172 -RS03: try number = 135, reading sector 25288 -RS03: try number = 136, reading sector 25404 -RS03: try number = 137, reading sector 25520 -RS03: try number = 138, reading sector 25636 -RS03: try number = 139, reading sector 25752 -RS03: try number = 140, reading sector 25868 -RS03: try number = 141, reading sector 25984 -RS03: try number = 142, reading sector 26100 -RS03: try number = 143, reading sector 26216 -RS03: try number = 144, reading sector 26332 -RS03: try number = 145, reading sector 26448 -RS03: try number = 146, reading sector 26564 -RS03: try number = 147, reading sector 26680 -RS03: try number = 148, reading sector 26796 -RS03: try number = 149, reading sector 26912 -RS03: try number = 150, reading sector 27028 -RS03: try number = 151, reading sector 27144 -RS03: try number = 152, reading sector 27260 -RS03: try number = 153, reading sector 27376 -RS03: try number = 154, reading sector 27492 -RS03: try number = 155, reading sector 27608 -RS03: try number = 156, reading sector 27724 -RS03: try number = 157, reading sector 27840 -RS03: try number = 158, reading sector 27956 -RS03: try number = 159, reading sector 28072 -RS03: try number = 160, reading sector 28188 -RS03: try number = 161, reading sector 28304 -RS03: try number = 162, reading sector 28420 -RS03: try number = 163, reading sector 28536 -RS03: try number = 164, reading sector 28652 -** All layers tested -> no RS03 data found -.. trying layer size 117 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 9828 -RS03: try number = 166, reading sector 9945 -RS03: try number = 167, reading sector 10062 -RS03: try number = 168, reading sector 10179 -RS03: try number = 169, reading sector 10296 -RS03: try number = 170, reading sector 10413 -RS03: try number = 171, reading sector 10530 -RS03: try number = 172, reading sector 10647 -RS03: try number = 173, reading sector 10764 -RS03: try number = 174, reading sector 10881 -RS03: try number = 175, reading sector 10998 -RS03: try number = 176, reading sector 11115 -RS03: try number = 177, reading sector 11232 -RS03: try number = 178, reading sector 11349 -RS03: try number = 179, reading sector 11466 -RS03: try number = 180, reading sector 11583 -RS03: try number = 181, reading sector 11700 -RS03: try number = 182, reading sector 11817 -RS03: try number = 183, reading sector 11934 -RS03: try number = 184, reading sector 12051 -RS03: try number = 185, reading sector 12168 -RS03: try number = 186, reading sector 12285 -RS03: try number = 187, reading sector 12402 -RS03: try number = 188, reading sector 12519 -RS03: try number = 189, reading sector 12636 -RS03: try number = 190, reading sector 12753 -RS03: try number = 191, reading sector 12870 -RS03: try number = 192, reading sector 12987 -RS03: try number = 193, reading sector 13104 -RS03: try number = 194, reading sector 13221 -RS03: try number = 195, reading sector 13338 -RS03: try number = 196, reading sector 13455 -RS03: try number = 197, reading sector 13572 -RS03: try number = 198, reading sector 13689 -RS03: try number = 199, reading sector 13806 -RS03: try number = 200, reading sector 13923 -RS03: try number = 201, reading sector 14040 -RS03: try number = 202, reading sector 14157 -RS03: try number = 203, reading sector 14274 -RS03: try number = 204, reading sector 14391 -RS03: try number = 205, reading sector 14508 -RS03: try number = 206, reading sector 14625 -RS03: try number = 207, reading sector 14742 -RS03: try number = 208, reading sector 14859 -RS03: try number = 209, reading sector 14976 -RS03: try number = 210, reading sector 15093 -RS03: try number = 211, reading sector 15210 -RS03: try number = 212, reading sector 15327 -RS03: try number = 213, reading sector 15444 -RS03: try number = 214, reading sector 15561 -RS03: try number = 215, reading sector 15678 -RS03: try number = 216, reading sector 15795 -RS03: try number = 217, reading sector 15912 -RS03: try number = 218, reading sector 16029 -RS03: try number = 219, reading sector 16146 -RS03: try number = 220, reading sector 16263 -RS03: try number = 221, reading sector 16380 -RS03: try number = 222, reading sector 16497 -RS03: try number = 223, reading sector 16614 -RS03: try number = 224, reading sector 16731 -RS03: try number = 225, reading sector 16848 -RS03: try number = 226, reading sector 16965 -RS03: try number = 227, reading sector 17082 -RS03: try number = 228, reading sector 17199 -RS03: try number = 229, reading sector 17316 -RS03: try number = 230, reading sector 17433 -RS03: try number = 231, reading sector 17550 -RS03: try number = 232, reading sector 17667 -RS03: try number = 233, reading sector 17784 -RS03: try number = 234, reading sector 17901 -RS03: try number = 235, reading sector 18018 -RS03: try number = 236, reading sector 18135 -RS03: try number = 237, reading sector 18252 -RS03: try number = 238, reading sector 18369 -RS03: try number = 239, reading sector 18486 -RS03: try number = 240, reading sector 18603 -RS03: try number = 241, reading sector 18720 -RS03: try number = 242, reading sector 18837 -RS03: try number = 243, reading sector 18954 -RS03: try number = 244, reading sector 19071 -RS03: try number = 245, reading sector 19188 -RS03: try number = 246, reading sector 19305 -RS03: try number = 247, reading sector 19422 -RS03: try number = 248, reading sector 19539 -RS03: try number = 249, reading sector 19656 -RS03: try number = 250, reading sector 19773 -RS03: try number = 251, reading sector 19890 -RS03: try number = 252, reading sector 20007 -RS03: try number = 253, reading sector 20124 -RS03: try number = 254, reading sector 20241 -RS03: try number = 255, reading sector 20358 -RS03: try number = 256, reading sector 20475 -RS03: try number = 257, reading sector 20592 -RS03: try number = 258, reading sector 20709 -RS03: try number = 259, reading sector 20826 -RS03: try number = 260, reading sector 20943 -RS03: try number = 261, reading sector 21060 -RS03: try number = 262, reading sector 21177 -RS03: try number = 263, reading sector 21294 -RS03: try number = 264, reading sector 21411 -RS03: try number = 265, reading sector 21528 -RS03: try number = 266, reading sector 21645 -RS03: try number = 267, reading sector 21762 -RS03: try number = 268, reading sector 21879 -RS03: try number = 269, reading sector 21996 -RS03: try number = 270, reading sector 22113 -RS03: try number = 271, reading sector 22230 -RS03: try number = 272, reading sector 22347 -RS03: try number = 273, reading sector 22464 -RS03: try number = 274, reading sector 22581 -RS03: try number = 275, reading sector 22698 -RS03: try number = 276, reading sector 22815 -RS03: try number = 277, reading sector 22932 -RS03: try number = 278, reading sector 23049 -RS03: try number = 279, reading sector 23166 -RS03: try number = 280, reading sector 23283 -RS03: try number = 281, reading sector 23400 -RS03: try number = 282, reading sector 23517 -RS03: try number = 283, reading sector 23634 -RS03: try number = 284, reading sector 23751 -RS03: try number = 285, reading sector 23868 -RS03: try number = 286, reading sector 23985 -RS03: try number = 287, reading sector 24102 -RS03: try number = 288, reading sector 24219 -RS03: try number = 289, reading sector 24336 -RS03: try number = 290, reading sector 24453 -RS03: try number = 291, reading sector 24570 -RS03: try number = 292, reading sector 24687 -RS03: try number = 293, reading sector 24804 -RS03: try number = 294, reading sector 24921 -RS03: try number = 295, reading sector 25038 -RS03: try number = 296, reading sector 25155 -RS03: try number = 297, reading sector 25272 -RS03: try number = 298, reading sector 25389 -RS03: try number = 299, reading sector 25506 -RS03: try number = 300, reading sector 25623 -RS03: try number = 301, reading sector 25740 -RS03: try number = 302, reading sector 25857 -RS03: try number = 303, reading sector 25974 -RS03: try number = 304, reading sector 26091 -RS03: try number = 305, reading sector 26208 -RS03: try number = 306, reading sector 26325 -RS03: try number = 307, reading sector 26442 -RS03: try number = 308, reading sector 26559 -RS03: try number = 309, reading sector 26676 -RS03: try number = 310, reading sector 26793 -RS03: try number = 311, reading sector 26910 -RS03: try number = 312, reading sector 27027 -RS03: try number = 313, reading sector 27144 -RS03: try number = 314, reading sector 27261 -RS03: try number = 315, reading sector 27378 -RS03: try number = 316, reading sector 27495 -RS03: try number = 317, reading sector 27612 -RS03: try number = 318, reading sector 27729 -RS03: try number = 319, reading sector 27846 -RS03: try number = 320, reading sector 27963 -RS03: try number = 321, reading sector 28080 -RS03: try number = 322, reading sector 28197 -RS03: try number = 323, reading sector 28314 -RS03: try number = 324, reading sector 28431 -RS03: try number = 325, reading sector 28548 -RS03: try number = 326, reading sector 28665 -RS03: try number = 327, reading sector 28782 -RS03: try number = 328, reading sector 28899 -** All layers tested -> no RS03 data found -.. trying layer size 118 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 9912 -RS03: try number = 330, reading sector 10030 -RS03: try number = 331, reading sector 10148 -RS03: try number = 332, reading sector 10266 -RS03: try number = 333, reading sector 10384 -RS03: try number = 334, reading sector 10502 -RS03: try number = 335, reading sector 10620 -RS03: try number = 336, reading sector 10738 -RS03: try number = 337, reading sector 10856 -RS03: try number = 338, reading sector 10974 -RS03: try number = 339, reading sector 11092 -RS03: try number = 340, reading sector 11210 -RS03: try number = 341, reading sector 11328 -RS03: try number = 342, reading sector 11446 -RS03: try number = 343, reading sector 11564 -RS03: try number = 344, reading sector 11682 -RS03: try number = 345, reading sector 11800 -RS03: try number = 346, reading sector 11918 -RS03: try number = 347, reading sector 12036 -RS03: try number = 348, reading sector 12154 -RS03: try number = 349, reading sector 12272 -RS03: try number = 350, reading sector 12390 -RS03: try number = 351, reading sector 12508 -RS03: try number = 352, reading sector 12626 -RS03: try number = 353, reading sector 12744 -RS03: try number = 354, reading sector 12862 -RS03: try number = 355, reading sector 12980 -RS03: try number = 356, reading sector 13098 -RS03: try number = 357, reading sector 13216 -RS03: try number = 358, reading sector 13334 -RS03: try number = 359, reading sector 13452 -RS03: try number = 360, reading sector 13570 -RS03: try number = 361, reading sector 13688 -RS03: try number = 362, reading sector 13806 -RS03: try number = 363, reading sector 13924 -RS03: try number = 364, reading sector 14042 -RS03: try number = 365, reading sector 14160 -RS03: try number = 366, reading sector 14278 -RS03: try number = 367, reading sector 14396 -RS03: try number = 368, reading sector 14514 -RS03: try number = 369, reading sector 14632 -RS03: try number = 370, reading sector 14750 -RS03: try number = 371, reading sector 14868 -RS03: try number = 372, reading sector 14986 -RS03: try number = 373, reading sector 15104 -RS03: try number = 374, reading sector 15222 -RS03: try number = 375, reading sector 15340 -RS03: try number = 376, reading sector 15458 -RS03: try number = 377, reading sector 15576 -RS03: try number = 378, reading sector 15694 -RS03: try number = 379, reading sector 15812 -RS03: try number = 380, reading sector 15930 -RS03: try number = 381, reading sector 16048 -RS03: try number = 382, reading sector 16166 -RS03: try number = 383, reading sector 16284 -RS03: try number = 384, reading sector 16402 -RS03: try number = 385, reading sector 16520 -RS03: try number = 386, reading sector 16638 -RS03: try number = 387, reading sector 16756 -RS03: try number = 388, reading sector 16874 -RS03: try number = 389, reading sector 16992 -RS03: try number = 390, reading sector 17110 -RS03: try number = 391, reading sector 17228 -RS03: try number = 392, reading sector 17346 -RS03: try number = 393, reading sector 17464 -RS03: try number = 394, reading sector 17582 -RS03: try number = 395, reading sector 17700 -RS03: try number = 396, reading sector 17818 -RS03: try number = 397, reading sector 17936 -RS03: try number = 398, reading sector 18054 -RS03: try number = 399, reading sector 18172 -RS03: try number = 400, reading sector 18290 -RS03: try number = 401, reading sector 18408 -RS03: try number = 402, reading sector 18526 -RS03: try number = 403, reading sector 18644 -RS03: try number = 404, reading sector 18762 -RS03: try number = 405, reading sector 18880 -RS03: try number = 406, reading sector 18998 -RS03: try number = 407, reading sector 19116 -RS03: try number = 408, reading sector 19234 -RS03: try number = 409, reading sector 19352 -RS03: try number = 410, reading sector 19470 -RS03: try number = 411, reading sector 19588 -RS03: try number = 412, reading sector 19706 -RS03: try number = 413, reading sector 19824 -RS03: try number = 414, reading sector 19942 -RS03: try number = 415, reading sector 20060 -RS03: try number = 416, reading sector 20178 -RS03: try number = 417, reading sector 20296 -RS03: try number = 418, reading sector 20414 -RS03: try number = 419, reading sector 20532 -RS03: try number = 420, reading sector 20650 -RS03: try number = 421, reading sector 20768 -RS03: try number = 422, reading sector 20886 -RS03: try number = 423, reading sector 21004 -RS03: try number = 424, reading sector 21122 -RS03: try number = 425, reading sector 21240 -RS03: try number = 426, reading sector 21358 -RS03: try number = 427, reading sector 21476 -RS03: try number = 428, reading sector 21594 -RS03: try number = 429, reading sector 21712 -RS03: try number = 430, reading sector 21830 -RS03: try number = 431, reading sector 21948 -RS03: try number = 432, reading sector 22066 -RS03: try number = 433, reading sector 22184 -RS03: try number = 434, reading sector 22302 -RS03: try number = 435, reading sector 22420 -RS03: try number = 436, reading sector 22538 -RS03: try number = 437, reading sector 22656 -RS03: try number = 438, reading sector 22774 -RS03: try number = 439, reading sector 22892 -RS03: try number = 440, reading sector 23010 -RS03: try number = 441, reading sector 23128 -RS03: try number = 442, reading sector 23246 -RS03: try number = 443, reading sector 23364 -RS03: try number = 444, reading sector 23482 -RS03: try number = 445, reading sector 23600 -RS03: try number = 446, reading sector 23718 -RS03: try number = 447, reading sector 23836 -RS03: try number = 448, reading sector 23954 -RS03: try number = 449, reading sector 24072 -RS03: try number = 450, reading sector 24190 -RS03: try number = 451, reading sector 24308 -RS03: try number = 452, reading sector 24426 -RS03: try number = 453, reading sector 24544 -RS03: try number = 454, reading sector 24662 -RS03: try number = 455, reading sector 24780 -RS03: try number = 456, reading sector 24898 -RS03: try number = 457, reading sector 25016 -RS03: try number = 458, reading sector 25134 -RS03: try number = 459, reading sector 25252 -RS03: try number = 460, reading sector 25370 -RS03: try number = 461, reading sector 25488 -RS03: try number = 462, reading sector 25606 -RS03: try number = 463, reading sector 25724 -RS03: try number = 464, reading sector 25842 -RS03: try number = 465, reading sector 25960 -RS03: try number = 466, reading sector 26078 -RS03: try number = 467, reading sector 26196 -RS03: try number = 468, reading sector 26314 -RS03: try number = 469, reading sector 26432 -RS03: try number = 470, reading sector 26550 -RS03: try number = 471, reading sector 26668 -RS03: try number = 472, reading sector 26786 -RS03: try number = 473, reading sector 26904 -RS03: try number = 474, reading sector 27022 -RS03: try number = 475, reading sector 27140 -RS03: try number = 476, reading sector 27258 -RS03: try number = 477, reading sector 27376 -RS03: try number = 478, reading sector 27494 -RS03: try number = 479, reading sector 27612 -RS03: try number = 480, reading sector 27730 -RS03: try number = 481, reading sector 27848 -RS03: try number = 482, reading sector 27966 -RS03: try number = 483, reading sector 28084 -RS03: try number = 484, reading sector 28202 -RS03: try number = 485, reading sector 28320 -RS03: try number = 486, reading sector 28438 -RS03: try number = 487, reading sector 28556 -RS03: try number = 488, reading sector 28674 -RS03: try number = 489, reading sector 28792 -RS03: try number = 490, reading sector 28910 -RS03: try number = 491, reading sector 29028 -RS03: try number = 492, reading sector 29146 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_ecc_create_after_partial_read b/regtest/database/RS03f_ecc_create_after_partial_read index 92dfe910..62b04e28 100644 --- a/regtest/database/RS03f_ecc_create_after_partial_read +++ b/regtest/database/RS03f_ecc_create_after_partial_read @@ -303,511 +303,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_ecc_create_after_read b/regtest/database/RS03f_ecc_create_after_read index bb3303e3..4e5604b0 100644 --- a/regtest/database/RS03f_ecc_create_after_read +++ b/regtest/database/RS03f_ecc_create_after_read @@ -304,511 +304,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_ecc_header_crc_error b/regtest/database/RS03f_ecc_header_crc_error index 3be90007..d3e14b49 100644 --- a/regtest/database/RS03f_ecc_header_crc_error +++ b/regtest/database/RS03f_ecc_header_crc_error @@ -130,511 +130,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_ecc_recreate_after_read_rs01 b/regtest/database/RS03f_ecc_recreate_after_read_rs01 index a90d2d27..d0d1e013 100644 --- a/regtest/database/RS03f_ecc_recreate_after_read_rs01 +++ b/regtest/database/RS03f_ecc_recreate_after_read_rs01 @@ -306,511 +306,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_ecc_recreate_after_read_rs03f b/regtest/database/RS03f_ecc_recreate_after_read_rs03f index 08561667..a85c180f 100644 --- a/regtest/database/RS03f_ecc_recreate_after_read_rs03f +++ b/regtest/database/RS03f_ecc_recreate_after_read_rs03f @@ -320,511 +320,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_fix_missing_ecc_header b/regtest/database/RS03f_fix_missing_ecc_header index 6c8ef88e..2d2e5759 100644 --- a/regtest/database/RS03f_fix_missing_ecc_header +++ b/regtest/database/RS03f_fix_missing_ecc_header @@ -131,511 +131,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_missing_ecc_header b/regtest/database/RS03f_missing_ecc_header index b90d402b..1ac413a2 100644 --- a/regtest/database/RS03f_missing_ecc_header +++ b/regtest/database/RS03f_missing_ecc_header @@ -130,511 +130,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_missing_ecc_header_and_crc b/regtest/database/RS03f_missing_ecc_header_and_crc index a9234a37..8ce5c339 100644 --- a/regtest/database/RS03f_missing_ecc_header_and_crc +++ b/regtest/database/RS03f_missing_ecc_header_and_crc @@ -130,511 +130,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_missing_ecc_header_and_defective_crc b/regtest/database/RS03f_missing_ecc_header_and_defective_crc index 67664692..4223533c 100644 --- a/regtest/database/RS03f_missing_ecc_header_and_defective_crc +++ b/regtest/database/RS03f_missing_ecc_header_and_defective_crc @@ -130,511 +130,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_special_padding b/regtest/database/RS03f_special_padding index 3ee58633..d6bb71da 100644 --- a/regtest/database/RS03f_special_padding +++ b/regtest/database/RS03f_special_padding @@ -132,511 +132,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 77 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6468 -RS03: try number = 2, reading sector 6545 -RS03: try number = 3, reading sector 6622 -RS03: try number = 4, reading sector 6699 -RS03: try number = 5, reading sector 6776 -RS03: try number = 6, reading sector 6853 -RS03: try number = 7, reading sector 6930 -RS03: try number = 8, reading sector 7007 -RS03: try number = 9, reading sector 7084 -RS03: try number = 10, reading sector 7161 -RS03: try number = 11, reading sector 7238 -RS03: try number = 12, reading sector 7315 -RS03: try number = 13, reading sector 7392 -RS03: try number = 14, reading sector 7469 -RS03: try number = 15, reading sector 7546 -RS03: try number = 16, reading sector 7623 -RS03: try number = 17, reading sector 7700 -RS03: try number = 18, reading sector 7777 -RS03: try number = 19, reading sector 7854 -RS03: try number = 20, reading sector 7931 -RS03: try number = 21, reading sector 8008 -RS03: try number = 22, reading sector 8085 -RS03: try number = 23, reading sector 8162 -RS03: try number = 24, reading sector 8239 -RS03: try number = 25, reading sector 8316 -RS03: try number = 26, reading sector 8393 -RS03: try number = 27, reading sector 8470 -RS03: try number = 28, reading sector 8547 -RS03: try number = 29, reading sector 8624 -RS03: try number = 30, reading sector 8701 -RS03: try number = 31, reading sector 8778 -RS03: try number = 32, reading sector 8855 -RS03: try number = 33, reading sector 8932 -RS03: try number = 34, reading sector 9009 -RS03: try number = 35, reading sector 9086 -RS03: try number = 36, reading sector 9163 -RS03: try number = 37, reading sector 9240 -RS03: try number = 38, reading sector 9317 -RS03: try number = 39, reading sector 9394 -RS03: try number = 40, reading sector 9471 -RS03: try number = 41, reading sector 9548 -RS03: try number = 42, reading sector 9625 -RS03: try number = 43, reading sector 9702 -RS03: try number = 44, reading sector 9779 -RS03: try number = 45, reading sector 9856 -RS03: try number = 46, reading sector 9933 -RS03: try number = 47, reading sector 10010 -RS03: try number = 48, reading sector 10087 -RS03: try number = 49, reading sector 10164 -RS03: try number = 50, reading sector 10241 -RS03: try number = 51, reading sector 10318 -RS03: try number = 52, reading sector 10395 -RS03: try number = 53, reading sector 10472 -RS03: try number = 54, reading sector 10549 -RS03: try number = 55, reading sector 10626 -RS03: try number = 56, reading sector 10703 -RS03: try number = 57, reading sector 10780 -RS03: try number = 58, reading sector 10857 -RS03: try number = 59, reading sector 10934 -RS03: try number = 60, reading sector 11011 -RS03: try number = 61, reading sector 11088 -RS03: try number = 62, reading sector 11165 -RS03: try number = 63, reading sector 11242 -RS03: try number = 64, reading sector 11319 -RS03: try number = 65, reading sector 11396 -RS03: try number = 66, reading sector 11473 -RS03: try number = 67, reading sector 11550 -RS03: try number = 68, reading sector 11627 -RS03: try number = 69, reading sector 11704 -RS03: try number = 70, reading sector 11781 -RS03: try number = 71, reading sector 11858 -RS03: try number = 72, reading sector 11935 -RS03: try number = 73, reading sector 12012 -RS03: try number = 74, reading sector 12089 -RS03: try number = 75, reading sector 12166 -RS03: try number = 76, reading sector 12243 -RS03: try number = 77, reading sector 12320 -RS03: try number = 78, reading sector 12397 -RS03: try number = 79, reading sector 12474 -RS03: try number = 80, reading sector 12551 -RS03: try number = 81, reading sector 12628 -RS03: try number = 82, reading sector 12705 -RS03: try number = 83, reading sector 12782 -RS03: try number = 84, reading sector 12859 -RS03: try number = 85, reading sector 12936 -RS03: try number = 86, reading sector 13013 -RS03: try number = 87, reading sector 13090 -RS03: try number = 88, reading sector 13167 -RS03: try number = 89, reading sector 13244 -RS03: try number = 90, reading sector 13321 -RS03: try number = 91, reading sector 13398 -RS03: try number = 92, reading sector 13475 -RS03: try number = 93, reading sector 13552 -RS03: try number = 94, reading sector 13629 -RS03: try number = 95, reading sector 13706 -RS03: try number = 96, reading sector 13783 -RS03: try number = 97, reading sector 13860 -RS03: try number = 98, reading sector 13937 -RS03: try number = 99, reading sector 14014 -RS03: try number = 100, reading sector 14091 -RS03: try number = 101, reading sector 14168 -RS03: try number = 102, reading sector 14245 -RS03: try number = 103, reading sector 14322 -RS03: try number = 104, reading sector 14399 -RS03: try number = 105, reading sector 14476 -RS03: try number = 106, reading sector 14553 -RS03: try number = 107, reading sector 14630 -RS03: try number = 108, reading sector 14707 -RS03: try number = 109, reading sector 14784 -RS03: try number = 110, reading sector 14861 -RS03: try number = 111, reading sector 14938 -RS03: try number = 112, reading sector 15015 -RS03: try number = 113, reading sector 15092 -RS03: try number = 114, reading sector 15169 -RS03: try number = 115, reading sector 15246 -RS03: try number = 116, reading sector 15323 -RS03: try number = 117, reading sector 15400 -RS03: try number = 118, reading sector 15477 -RS03: try number = 119, reading sector 15554 -RS03: try number = 120, reading sector 15631 -RS03: try number = 121, reading sector 15708 -RS03: try number = 122, reading sector 15785 -RS03: try number = 123, reading sector 15862 -RS03: try number = 124, reading sector 15939 -RS03: try number = 125, reading sector 16016 -RS03: try number = 126, reading sector 16093 -RS03: try number = 127, reading sector 16170 -RS03: try number = 128, reading sector 16247 -RS03: try number = 129, reading sector 16324 -RS03: try number = 130, reading sector 16401 -RS03: try number = 131, reading sector 16478 -RS03: try number = 132, reading sector 16555 -RS03: try number = 133, reading sector 16632 -RS03: try number = 134, reading sector 16709 -RS03: try number = 135, reading sector 16786 -RS03: try number = 136, reading sector 16863 -RS03: try number = 137, reading sector 16940 -RS03: try number = 138, reading sector 17017 -RS03: try number = 139, reading sector 17094 -RS03: try number = 140, reading sector 17171 -RS03: try number = 141, reading sector 17248 -RS03: try number = 142, reading sector 17325 -RS03: try number = 143, reading sector 17402 -RS03: try number = 144, reading sector 17479 -RS03: try number = 145, reading sector 17556 -RS03: try number = 146, reading sector 17633 -RS03: try number = 147, reading sector 17710 -RS03: try number = 148, reading sector 17787 -RS03: try number = 149, reading sector 17864 -RS03: try number = 150, reading sector 17941 -RS03: try number = 151, reading sector 18018 -RS03: try number = 152, reading sector 18095 -RS03: try number = 153, reading sector 18172 -RS03: try number = 154, reading sector 18249 -RS03: try number = 155, reading sector 18326 -RS03: try number = 156, reading sector 18403 -RS03: try number = 157, reading sector 18480 -RS03: try number = 158, reading sector 18557 -RS03: try number = 159, reading sector 18634 -RS03: try number = 160, reading sector 18711 -RS03: try number = 161, reading sector 18788 -RS03: try number = 162, reading sector 18865 -RS03: try number = 163, reading sector 18942 -RS03: try number = 164, reading sector 19019 -** All layers tested -> no RS03 data found -.. trying layer size 78 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6552 -RS03: try number = 166, reading sector 6630 -RS03: try number = 167, reading sector 6708 -RS03: try number = 168, reading sector 6786 -RS03: try number = 169, reading sector 6864 -RS03: try number = 170, reading sector 6942 -RS03: try number = 171, reading sector 7020 -RS03: try number = 172, reading sector 7098 -RS03: try number = 173, reading sector 7176 -RS03: try number = 174, reading sector 7254 -RS03: try number = 175, reading sector 7332 -RS03: try number = 176, reading sector 7410 -RS03: try number = 177, reading sector 7488 -RS03: try number = 178, reading sector 7566 -RS03: try number = 179, reading sector 7644 -RS03: try number = 180, reading sector 7722 -RS03: try number = 181, reading sector 7800 -RS03: try number = 182, reading sector 7878 -RS03: try number = 183, reading sector 7956 -RS03: try number = 184, reading sector 8034 -RS03: try number = 185, reading sector 8112 -RS03: try number = 186, reading sector 8190 -RS03: try number = 187, reading sector 8268 -RS03: try number = 188, reading sector 8346 -RS03: try number = 189, reading sector 8424 -RS03: try number = 190, reading sector 8502 -RS03: try number = 191, reading sector 8580 -RS03: try number = 192, reading sector 8658 -RS03: try number = 193, reading sector 8736 -RS03: try number = 194, reading sector 8814 -RS03: try number = 195, reading sector 8892 -RS03: try number = 196, reading sector 8970 -RS03: try number = 197, reading sector 9048 -RS03: try number = 198, reading sector 9126 -RS03: try number = 199, reading sector 9204 -RS03: try number = 200, reading sector 9282 -RS03: try number = 201, reading sector 9360 -RS03: try number = 202, reading sector 9438 -RS03: try number = 203, reading sector 9516 -RS03: try number = 204, reading sector 9594 -RS03: try number = 205, reading sector 9672 -RS03: try number = 206, reading sector 9750 -RS03: try number = 207, reading sector 9828 -RS03: try number = 208, reading sector 9906 -RS03: try number = 209, reading sector 9984 -RS03: try number = 210, reading sector 10062 -RS03: try number = 211, reading sector 10140 -RS03: try number = 212, reading sector 10218 -RS03: try number = 213, reading sector 10296 -RS03: try number = 214, reading sector 10374 -RS03: try number = 215, reading sector 10452 -RS03: try number = 216, reading sector 10530 -RS03: try number = 217, reading sector 10608 -RS03: try number = 218, reading sector 10686 -RS03: try number = 219, reading sector 10764 -RS03: try number = 220, reading sector 10842 -RS03: try number = 221, reading sector 10920 -RS03: try number = 222, reading sector 10998 -RS03: try number = 223, reading sector 11076 -RS03: try number = 224, reading sector 11154 -RS03: try number = 225, reading sector 11232 -RS03: try number = 226, reading sector 11310 -RS03: try number = 227, reading sector 11388 -RS03: try number = 228, reading sector 11466 -RS03: try number = 229, reading sector 11544 -RS03: try number = 230, reading sector 11622 -RS03: try number = 231, reading sector 11700 -RS03: try number = 232, reading sector 11778 -RS03: try number = 233, reading sector 11856 -RS03: try number = 234, reading sector 11934 -RS03: try number = 235, reading sector 12012 -RS03: try number = 236, reading sector 12090 -RS03: try number = 237, reading sector 12168 -RS03: try number = 238, reading sector 12246 -RS03: try number = 239, reading sector 12324 -RS03: try number = 240, reading sector 12402 -RS03: try number = 241, reading sector 12480 -RS03: try number = 242, reading sector 12558 -RS03: try number = 243, reading sector 12636 -RS03: try number = 244, reading sector 12714 -RS03: try number = 245, reading sector 12792 -RS03: try number = 246, reading sector 12870 -RS03: try number = 247, reading sector 12948 -RS03: try number = 248, reading sector 13026 -RS03: try number = 249, reading sector 13104 -RS03: try number = 250, reading sector 13182 -RS03: try number = 251, reading sector 13260 -RS03: try number = 252, reading sector 13338 -RS03: try number = 253, reading sector 13416 -RS03: try number = 254, reading sector 13494 -RS03: try number = 255, reading sector 13572 -RS03: try number = 256, reading sector 13650 -RS03: try number = 257, reading sector 13728 -RS03: try number = 258, reading sector 13806 -RS03: try number = 259, reading sector 13884 -RS03: try number = 260, reading sector 13962 -RS03: try number = 261, reading sector 14040 -RS03: try number = 262, reading sector 14118 -RS03: try number = 263, reading sector 14196 -RS03: try number = 264, reading sector 14274 -RS03: try number = 265, reading sector 14352 -RS03: try number = 266, reading sector 14430 -RS03: try number = 267, reading sector 14508 -RS03: try number = 268, reading sector 14586 -RS03: try number = 269, reading sector 14664 -RS03: try number = 270, reading sector 14742 -RS03: try number = 271, reading sector 14820 -RS03: try number = 272, reading sector 14898 -RS03: try number = 273, reading sector 14976 -RS03: try number = 274, reading sector 15054 -RS03: try number = 275, reading sector 15132 -RS03: try number = 276, reading sector 15210 -RS03: try number = 277, reading sector 15288 -RS03: try number = 278, reading sector 15366 -RS03: try number = 279, reading sector 15444 -RS03: try number = 280, reading sector 15522 -RS03: try number = 281, reading sector 15600 -RS03: try number = 282, reading sector 15678 -RS03: try number = 283, reading sector 15756 -RS03: try number = 284, reading sector 15834 -RS03: try number = 285, reading sector 15912 -RS03: try number = 286, reading sector 15990 -RS03: try number = 287, reading sector 16068 -RS03: try number = 288, reading sector 16146 -RS03: try number = 289, reading sector 16224 -RS03: try number = 290, reading sector 16302 -RS03: try number = 291, reading sector 16380 -RS03: try number = 292, reading sector 16458 -RS03: try number = 293, reading sector 16536 -RS03: try number = 294, reading sector 16614 -RS03: try number = 295, reading sector 16692 -RS03: try number = 296, reading sector 16770 -RS03: try number = 297, reading sector 16848 -RS03: try number = 298, reading sector 16926 -RS03: try number = 299, reading sector 17004 -RS03: try number = 300, reading sector 17082 -RS03: try number = 301, reading sector 17160 -RS03: try number = 302, reading sector 17238 -RS03: try number = 303, reading sector 17316 -RS03: try number = 304, reading sector 17394 -RS03: try number = 305, reading sector 17472 -RS03: try number = 306, reading sector 17550 -RS03: try number = 307, reading sector 17628 -RS03: try number = 308, reading sector 17706 -RS03: try number = 309, reading sector 17784 -RS03: try number = 310, reading sector 17862 -RS03: try number = 311, reading sector 17940 -RS03: try number = 312, reading sector 18018 -RS03: try number = 313, reading sector 18096 -RS03: try number = 314, reading sector 18174 -RS03: try number = 315, reading sector 18252 -RS03: try number = 316, reading sector 18330 -RS03: try number = 317, reading sector 18408 -RS03: try number = 318, reading sector 18486 -RS03: try number = 319, reading sector 18564 -RS03: try number = 320, reading sector 18642 -RS03: try number = 321, reading sector 18720 -RS03: try number = 322, reading sector 18798 -RS03: try number = 323, reading sector 18876 -RS03: try number = 324, reading sector 18954 -RS03: try number = 325, reading sector 19032 -RS03: try number = 326, reading sector 19110 -RS03: try number = 327, reading sector 19188 -RS03: try number = 328, reading sector 19266 -** All layers tested -> no RS03 data found -.. trying layer size 79 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6636 -RS03: try number = 330, reading sector 6715 -RS03: try number = 331, reading sector 6794 -RS03: try number = 332, reading sector 6873 -RS03: try number = 333, reading sector 6952 -RS03: try number = 334, reading sector 7031 -RS03: try number = 335, reading sector 7110 -RS03: try number = 336, reading sector 7189 -RS03: try number = 337, reading sector 7268 -RS03: try number = 338, reading sector 7347 -RS03: try number = 339, reading sector 7426 -RS03: try number = 340, reading sector 7505 -RS03: try number = 341, reading sector 7584 -RS03: try number = 342, reading sector 7663 -RS03: try number = 343, reading sector 7742 -RS03: try number = 344, reading sector 7821 -RS03: try number = 345, reading sector 7900 -RS03: try number = 346, reading sector 7979 -RS03: try number = 347, reading sector 8058 -RS03: try number = 348, reading sector 8137 -RS03: try number = 349, reading sector 8216 -RS03: try number = 350, reading sector 8295 -RS03: try number = 351, reading sector 8374 -RS03: try number = 352, reading sector 8453 -RS03: try number = 353, reading sector 8532 -RS03: try number = 354, reading sector 8611 -RS03: try number = 355, reading sector 8690 -RS03: try number = 356, reading sector 8769 -RS03: try number = 357, reading sector 8848 -RS03: try number = 358, reading sector 8927 -RS03: try number = 359, reading sector 9006 -RS03: try number = 360, reading sector 9085 -RS03: try number = 361, reading sector 9164 -RS03: try number = 362, reading sector 9243 -RS03: try number = 363, reading sector 9322 -RS03: try number = 364, reading sector 9401 -RS03: try number = 365, reading sector 9480 -RS03: try number = 366, reading sector 9559 -RS03: try number = 367, reading sector 9638 -RS03: try number = 368, reading sector 9717 -RS03: try number = 369, reading sector 9796 -RS03: try number = 370, reading sector 9875 -RS03: try number = 371, reading sector 9954 -RS03: try number = 372, reading sector 10033 -RS03: try number = 373, reading sector 10112 -RS03: try number = 374, reading sector 10191 -RS03: try number = 375, reading sector 10270 -RS03: try number = 376, reading sector 10349 -RS03: try number = 377, reading sector 10428 -RS03: try number = 378, reading sector 10507 -RS03: try number = 379, reading sector 10586 -RS03: try number = 380, reading sector 10665 -RS03: try number = 381, reading sector 10744 -RS03: try number = 382, reading sector 10823 -RS03: try number = 383, reading sector 10902 -RS03: try number = 384, reading sector 10981 -RS03: try number = 385, reading sector 11060 -RS03: try number = 386, reading sector 11139 -RS03: try number = 387, reading sector 11218 -RS03: try number = 388, reading sector 11297 -RS03: try number = 389, reading sector 11376 -RS03: try number = 390, reading sector 11455 -RS03: try number = 391, reading sector 11534 -RS03: try number = 392, reading sector 11613 -RS03: try number = 393, reading sector 11692 -RS03: try number = 394, reading sector 11771 -RS03: try number = 395, reading sector 11850 -RS03: try number = 396, reading sector 11929 -RS03: try number = 397, reading sector 12008 -RS03: try number = 398, reading sector 12087 -RS03: try number = 399, reading sector 12166 -RS03: try number = 400, reading sector 12245 -RS03: try number = 401, reading sector 12324 -RS03: try number = 402, reading sector 12403 -RS03: try number = 403, reading sector 12482 -RS03: try number = 404, reading sector 12561 -RS03: try number = 405, reading sector 12640 -RS03: try number = 406, reading sector 12719 -RS03: try number = 407, reading sector 12798 -RS03: try number = 408, reading sector 12877 -RS03: try number = 409, reading sector 12956 -RS03: try number = 410, reading sector 13035 -RS03: try number = 411, reading sector 13114 -RS03: try number = 412, reading sector 13193 -RS03: try number = 413, reading sector 13272 -RS03: try number = 414, reading sector 13351 -RS03: try number = 415, reading sector 13430 -RS03: try number = 416, reading sector 13509 -RS03: try number = 417, reading sector 13588 -RS03: try number = 418, reading sector 13667 -RS03: try number = 419, reading sector 13746 -RS03: try number = 420, reading sector 13825 -RS03: try number = 421, reading sector 13904 -RS03: try number = 422, reading sector 13983 -RS03: try number = 423, reading sector 14062 -RS03: try number = 424, reading sector 14141 -RS03: try number = 425, reading sector 14220 -RS03: try number = 426, reading sector 14299 -RS03: try number = 427, reading sector 14378 -RS03: try number = 428, reading sector 14457 -RS03: try number = 429, reading sector 14536 -RS03: try number = 430, reading sector 14615 -RS03: try number = 431, reading sector 14694 -RS03: try number = 432, reading sector 14773 -RS03: try number = 433, reading sector 14852 -RS03: try number = 434, reading sector 14931 -RS03: try number = 435, reading sector 15010 -RS03: try number = 436, reading sector 15089 -RS03: try number = 437, reading sector 15168 -RS03: try number = 438, reading sector 15247 -RS03: try number = 439, reading sector 15326 -RS03: try number = 440, reading sector 15405 -RS03: try number = 441, reading sector 15484 -RS03: try number = 442, reading sector 15563 -RS03: try number = 443, reading sector 15642 -RS03: try number = 444, reading sector 15721 -RS03: try number = 445, reading sector 15800 -RS03: try number = 446, reading sector 15879 -RS03: try number = 447, reading sector 15958 -RS03: try number = 448, reading sector 16037 -RS03: try number = 449, reading sector 16116 -RS03: try number = 450, reading sector 16195 -RS03: try number = 451, reading sector 16274 -RS03: try number = 452, reading sector 16353 -RS03: try number = 453, reading sector 16432 -RS03: try number = 454, reading sector 16511 -RS03: try number = 455, reading sector 16590 -RS03: try number = 456, reading sector 16669 -RS03: try number = 457, reading sector 16748 -RS03: try number = 458, reading sector 16827 -RS03: try number = 459, reading sector 16906 -RS03: try number = 460, reading sector 16985 -RS03: try number = 461, reading sector 17064 -RS03: try number = 462, reading sector 17143 -RS03: try number = 463, reading sector 17222 -RS03: try number = 464, reading sector 17301 -RS03: try number = 465, reading sector 17380 -RS03: try number = 466, reading sector 17459 -RS03: try number = 467, reading sector 17538 -RS03: try number = 468, reading sector 17617 -RS03: try number = 469, reading sector 17696 -RS03: try number = 470, reading sector 17775 -RS03: try number = 471, reading sector 17854 -RS03: try number = 472, reading sector 17933 -RS03: try number = 473, reading sector 18012 -RS03: try number = 474, reading sector 18091 -RS03: try number = 475, reading sector 18170 -RS03: try number = 476, reading sector 18249 -RS03: try number = 477, reading sector 18328 -RS03: try number = 478, reading sector 18407 -RS03: try number = 479, reading sector 18486 -RS03: try number = 480, reading sector 18565 -RS03: try number = 481, reading sector 18644 -RS03: try number = 482, reading sector 18723 -RS03: try number = 483, reading sector 18802 -RS03: try number = 484, reading sector 18881 -RS03: try number = 485, reading sector 18960 -RS03: try number = 486, reading sector 19039 -RS03: try number = 487, reading sector 19118 -RS03: try number = 488, reading sector 19197 -RS03: try number = 489, reading sector 19276 -RS03: try number = 490, reading sector 19355 -RS03: try number = 491, reading sector 19434 -RS03: try number = 492, reading sector 19513 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_special_padding_plus56 b/regtest/database/RS03f_special_padding_plus56 index f215a53d..d9399673 100644 --- a/regtest/database/RS03f_special_padding_plus56 +++ b/regtest/database/RS03f_special_padding_plus56 @@ -132,511 +132,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 77 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6468 -RS03: try number = 2, reading sector 6545 -RS03: try number = 3, reading sector 6622 -RS03: try number = 4, reading sector 6699 -RS03: try number = 5, reading sector 6776 -RS03: try number = 6, reading sector 6853 -RS03: try number = 7, reading sector 6930 -RS03: try number = 8, reading sector 7007 -RS03: try number = 9, reading sector 7084 -RS03: try number = 10, reading sector 7161 -RS03: try number = 11, reading sector 7238 -RS03: try number = 12, reading sector 7315 -RS03: try number = 13, reading sector 7392 -RS03: try number = 14, reading sector 7469 -RS03: try number = 15, reading sector 7546 -RS03: try number = 16, reading sector 7623 -RS03: try number = 17, reading sector 7700 -RS03: try number = 18, reading sector 7777 -RS03: try number = 19, reading sector 7854 -RS03: try number = 20, reading sector 7931 -RS03: try number = 21, reading sector 8008 -RS03: try number = 22, reading sector 8085 -RS03: try number = 23, reading sector 8162 -RS03: try number = 24, reading sector 8239 -RS03: try number = 25, reading sector 8316 -RS03: try number = 26, reading sector 8393 -RS03: try number = 27, reading sector 8470 -RS03: try number = 28, reading sector 8547 -RS03: try number = 29, reading sector 8624 -RS03: try number = 30, reading sector 8701 -RS03: try number = 31, reading sector 8778 -RS03: try number = 32, reading sector 8855 -RS03: try number = 33, reading sector 8932 -RS03: try number = 34, reading sector 9009 -RS03: try number = 35, reading sector 9086 -RS03: try number = 36, reading sector 9163 -RS03: try number = 37, reading sector 9240 -RS03: try number = 38, reading sector 9317 -RS03: try number = 39, reading sector 9394 -RS03: try number = 40, reading sector 9471 -RS03: try number = 41, reading sector 9548 -RS03: try number = 42, reading sector 9625 -RS03: try number = 43, reading sector 9702 -RS03: try number = 44, reading sector 9779 -RS03: try number = 45, reading sector 9856 -RS03: try number = 46, reading sector 9933 -RS03: try number = 47, reading sector 10010 -RS03: try number = 48, reading sector 10087 -RS03: try number = 49, reading sector 10164 -RS03: try number = 50, reading sector 10241 -RS03: try number = 51, reading sector 10318 -RS03: try number = 52, reading sector 10395 -RS03: try number = 53, reading sector 10472 -RS03: try number = 54, reading sector 10549 -RS03: try number = 55, reading sector 10626 -RS03: try number = 56, reading sector 10703 -RS03: try number = 57, reading sector 10780 -RS03: try number = 58, reading sector 10857 -RS03: try number = 59, reading sector 10934 -RS03: try number = 60, reading sector 11011 -RS03: try number = 61, reading sector 11088 -RS03: try number = 62, reading sector 11165 -RS03: try number = 63, reading sector 11242 -RS03: try number = 64, reading sector 11319 -RS03: try number = 65, reading sector 11396 -RS03: try number = 66, reading sector 11473 -RS03: try number = 67, reading sector 11550 -RS03: try number = 68, reading sector 11627 -RS03: try number = 69, reading sector 11704 -RS03: try number = 70, reading sector 11781 -RS03: try number = 71, reading sector 11858 -RS03: try number = 72, reading sector 11935 -RS03: try number = 73, reading sector 12012 -RS03: try number = 74, reading sector 12089 -RS03: try number = 75, reading sector 12166 -RS03: try number = 76, reading sector 12243 -RS03: try number = 77, reading sector 12320 -RS03: try number = 78, reading sector 12397 -RS03: try number = 79, reading sector 12474 -RS03: try number = 80, reading sector 12551 -RS03: try number = 81, reading sector 12628 -RS03: try number = 82, reading sector 12705 -RS03: try number = 83, reading sector 12782 -RS03: try number = 84, reading sector 12859 -RS03: try number = 85, reading sector 12936 -RS03: try number = 86, reading sector 13013 -RS03: try number = 87, reading sector 13090 -RS03: try number = 88, reading sector 13167 -RS03: try number = 89, reading sector 13244 -RS03: try number = 90, reading sector 13321 -RS03: try number = 91, reading sector 13398 -RS03: try number = 92, reading sector 13475 -RS03: try number = 93, reading sector 13552 -RS03: try number = 94, reading sector 13629 -RS03: try number = 95, reading sector 13706 -RS03: try number = 96, reading sector 13783 -RS03: try number = 97, reading sector 13860 -RS03: try number = 98, reading sector 13937 -RS03: try number = 99, reading sector 14014 -RS03: try number = 100, reading sector 14091 -RS03: try number = 101, reading sector 14168 -RS03: try number = 102, reading sector 14245 -RS03: try number = 103, reading sector 14322 -RS03: try number = 104, reading sector 14399 -RS03: try number = 105, reading sector 14476 -RS03: try number = 106, reading sector 14553 -RS03: try number = 107, reading sector 14630 -RS03: try number = 108, reading sector 14707 -RS03: try number = 109, reading sector 14784 -RS03: try number = 110, reading sector 14861 -RS03: try number = 111, reading sector 14938 -RS03: try number = 112, reading sector 15015 -RS03: try number = 113, reading sector 15092 -RS03: try number = 114, reading sector 15169 -RS03: try number = 115, reading sector 15246 -RS03: try number = 116, reading sector 15323 -RS03: try number = 117, reading sector 15400 -RS03: try number = 118, reading sector 15477 -RS03: try number = 119, reading sector 15554 -RS03: try number = 120, reading sector 15631 -RS03: try number = 121, reading sector 15708 -RS03: try number = 122, reading sector 15785 -RS03: try number = 123, reading sector 15862 -RS03: try number = 124, reading sector 15939 -RS03: try number = 125, reading sector 16016 -RS03: try number = 126, reading sector 16093 -RS03: try number = 127, reading sector 16170 -RS03: try number = 128, reading sector 16247 -RS03: try number = 129, reading sector 16324 -RS03: try number = 130, reading sector 16401 -RS03: try number = 131, reading sector 16478 -RS03: try number = 132, reading sector 16555 -RS03: try number = 133, reading sector 16632 -RS03: try number = 134, reading sector 16709 -RS03: try number = 135, reading sector 16786 -RS03: try number = 136, reading sector 16863 -RS03: try number = 137, reading sector 16940 -RS03: try number = 138, reading sector 17017 -RS03: try number = 139, reading sector 17094 -RS03: try number = 140, reading sector 17171 -RS03: try number = 141, reading sector 17248 -RS03: try number = 142, reading sector 17325 -RS03: try number = 143, reading sector 17402 -RS03: try number = 144, reading sector 17479 -RS03: try number = 145, reading sector 17556 -RS03: try number = 146, reading sector 17633 -RS03: try number = 147, reading sector 17710 -RS03: try number = 148, reading sector 17787 -RS03: try number = 149, reading sector 17864 -RS03: try number = 150, reading sector 17941 -RS03: try number = 151, reading sector 18018 -RS03: try number = 152, reading sector 18095 -RS03: try number = 153, reading sector 18172 -RS03: try number = 154, reading sector 18249 -RS03: try number = 155, reading sector 18326 -RS03: try number = 156, reading sector 18403 -RS03: try number = 157, reading sector 18480 -RS03: try number = 158, reading sector 18557 -RS03: try number = 159, reading sector 18634 -RS03: try number = 160, reading sector 18711 -RS03: try number = 161, reading sector 18788 -RS03: try number = 162, reading sector 18865 -RS03: try number = 163, reading sector 18942 -RS03: try number = 164, reading sector 19019 -** All layers tested -> no RS03 data found -.. trying layer size 78 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6552 -RS03: try number = 166, reading sector 6630 -RS03: try number = 167, reading sector 6708 -RS03: try number = 168, reading sector 6786 -RS03: try number = 169, reading sector 6864 -RS03: try number = 170, reading sector 6942 -RS03: try number = 171, reading sector 7020 -RS03: try number = 172, reading sector 7098 -RS03: try number = 173, reading sector 7176 -RS03: try number = 174, reading sector 7254 -RS03: try number = 175, reading sector 7332 -RS03: try number = 176, reading sector 7410 -RS03: try number = 177, reading sector 7488 -RS03: try number = 178, reading sector 7566 -RS03: try number = 179, reading sector 7644 -RS03: try number = 180, reading sector 7722 -RS03: try number = 181, reading sector 7800 -RS03: try number = 182, reading sector 7878 -RS03: try number = 183, reading sector 7956 -RS03: try number = 184, reading sector 8034 -RS03: try number = 185, reading sector 8112 -RS03: try number = 186, reading sector 8190 -RS03: try number = 187, reading sector 8268 -RS03: try number = 188, reading sector 8346 -RS03: try number = 189, reading sector 8424 -RS03: try number = 190, reading sector 8502 -RS03: try number = 191, reading sector 8580 -RS03: try number = 192, reading sector 8658 -RS03: try number = 193, reading sector 8736 -RS03: try number = 194, reading sector 8814 -RS03: try number = 195, reading sector 8892 -RS03: try number = 196, reading sector 8970 -RS03: try number = 197, reading sector 9048 -RS03: try number = 198, reading sector 9126 -RS03: try number = 199, reading sector 9204 -RS03: try number = 200, reading sector 9282 -RS03: try number = 201, reading sector 9360 -RS03: try number = 202, reading sector 9438 -RS03: try number = 203, reading sector 9516 -RS03: try number = 204, reading sector 9594 -RS03: try number = 205, reading sector 9672 -RS03: try number = 206, reading sector 9750 -RS03: try number = 207, reading sector 9828 -RS03: try number = 208, reading sector 9906 -RS03: try number = 209, reading sector 9984 -RS03: try number = 210, reading sector 10062 -RS03: try number = 211, reading sector 10140 -RS03: try number = 212, reading sector 10218 -RS03: try number = 213, reading sector 10296 -RS03: try number = 214, reading sector 10374 -RS03: try number = 215, reading sector 10452 -RS03: try number = 216, reading sector 10530 -RS03: try number = 217, reading sector 10608 -RS03: try number = 218, reading sector 10686 -RS03: try number = 219, reading sector 10764 -RS03: try number = 220, reading sector 10842 -RS03: try number = 221, reading sector 10920 -RS03: try number = 222, reading sector 10998 -RS03: try number = 223, reading sector 11076 -RS03: try number = 224, reading sector 11154 -RS03: try number = 225, reading sector 11232 -RS03: try number = 226, reading sector 11310 -RS03: try number = 227, reading sector 11388 -RS03: try number = 228, reading sector 11466 -RS03: try number = 229, reading sector 11544 -RS03: try number = 230, reading sector 11622 -RS03: try number = 231, reading sector 11700 -RS03: try number = 232, reading sector 11778 -RS03: try number = 233, reading sector 11856 -RS03: try number = 234, reading sector 11934 -RS03: try number = 235, reading sector 12012 -RS03: try number = 236, reading sector 12090 -RS03: try number = 237, reading sector 12168 -RS03: try number = 238, reading sector 12246 -RS03: try number = 239, reading sector 12324 -RS03: try number = 240, reading sector 12402 -RS03: try number = 241, reading sector 12480 -RS03: try number = 242, reading sector 12558 -RS03: try number = 243, reading sector 12636 -RS03: try number = 244, reading sector 12714 -RS03: try number = 245, reading sector 12792 -RS03: try number = 246, reading sector 12870 -RS03: try number = 247, reading sector 12948 -RS03: try number = 248, reading sector 13026 -RS03: try number = 249, reading sector 13104 -RS03: try number = 250, reading sector 13182 -RS03: try number = 251, reading sector 13260 -RS03: try number = 252, reading sector 13338 -RS03: try number = 253, reading sector 13416 -RS03: try number = 254, reading sector 13494 -RS03: try number = 255, reading sector 13572 -RS03: try number = 256, reading sector 13650 -RS03: try number = 257, reading sector 13728 -RS03: try number = 258, reading sector 13806 -RS03: try number = 259, reading sector 13884 -RS03: try number = 260, reading sector 13962 -RS03: try number = 261, reading sector 14040 -RS03: try number = 262, reading sector 14118 -RS03: try number = 263, reading sector 14196 -RS03: try number = 264, reading sector 14274 -RS03: try number = 265, reading sector 14352 -RS03: try number = 266, reading sector 14430 -RS03: try number = 267, reading sector 14508 -RS03: try number = 268, reading sector 14586 -RS03: try number = 269, reading sector 14664 -RS03: try number = 270, reading sector 14742 -RS03: try number = 271, reading sector 14820 -RS03: try number = 272, reading sector 14898 -RS03: try number = 273, reading sector 14976 -RS03: try number = 274, reading sector 15054 -RS03: try number = 275, reading sector 15132 -RS03: try number = 276, reading sector 15210 -RS03: try number = 277, reading sector 15288 -RS03: try number = 278, reading sector 15366 -RS03: try number = 279, reading sector 15444 -RS03: try number = 280, reading sector 15522 -RS03: try number = 281, reading sector 15600 -RS03: try number = 282, reading sector 15678 -RS03: try number = 283, reading sector 15756 -RS03: try number = 284, reading sector 15834 -RS03: try number = 285, reading sector 15912 -RS03: try number = 286, reading sector 15990 -RS03: try number = 287, reading sector 16068 -RS03: try number = 288, reading sector 16146 -RS03: try number = 289, reading sector 16224 -RS03: try number = 290, reading sector 16302 -RS03: try number = 291, reading sector 16380 -RS03: try number = 292, reading sector 16458 -RS03: try number = 293, reading sector 16536 -RS03: try number = 294, reading sector 16614 -RS03: try number = 295, reading sector 16692 -RS03: try number = 296, reading sector 16770 -RS03: try number = 297, reading sector 16848 -RS03: try number = 298, reading sector 16926 -RS03: try number = 299, reading sector 17004 -RS03: try number = 300, reading sector 17082 -RS03: try number = 301, reading sector 17160 -RS03: try number = 302, reading sector 17238 -RS03: try number = 303, reading sector 17316 -RS03: try number = 304, reading sector 17394 -RS03: try number = 305, reading sector 17472 -RS03: try number = 306, reading sector 17550 -RS03: try number = 307, reading sector 17628 -RS03: try number = 308, reading sector 17706 -RS03: try number = 309, reading sector 17784 -RS03: try number = 310, reading sector 17862 -RS03: try number = 311, reading sector 17940 -RS03: try number = 312, reading sector 18018 -RS03: try number = 313, reading sector 18096 -RS03: try number = 314, reading sector 18174 -RS03: try number = 315, reading sector 18252 -RS03: try number = 316, reading sector 18330 -RS03: try number = 317, reading sector 18408 -RS03: try number = 318, reading sector 18486 -RS03: try number = 319, reading sector 18564 -RS03: try number = 320, reading sector 18642 -RS03: try number = 321, reading sector 18720 -RS03: try number = 322, reading sector 18798 -RS03: try number = 323, reading sector 18876 -RS03: try number = 324, reading sector 18954 -RS03: try number = 325, reading sector 19032 -RS03: try number = 326, reading sector 19110 -RS03: try number = 327, reading sector 19188 -RS03: try number = 328, reading sector 19266 -** All layers tested -> no RS03 data found -.. trying layer size 79 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6636 -RS03: try number = 330, reading sector 6715 -RS03: try number = 331, reading sector 6794 -RS03: try number = 332, reading sector 6873 -RS03: try number = 333, reading sector 6952 -RS03: try number = 334, reading sector 7031 -RS03: try number = 335, reading sector 7110 -RS03: try number = 336, reading sector 7189 -RS03: try number = 337, reading sector 7268 -RS03: try number = 338, reading sector 7347 -RS03: try number = 339, reading sector 7426 -RS03: try number = 340, reading sector 7505 -RS03: try number = 341, reading sector 7584 -RS03: try number = 342, reading sector 7663 -RS03: try number = 343, reading sector 7742 -RS03: try number = 344, reading sector 7821 -RS03: try number = 345, reading sector 7900 -RS03: try number = 346, reading sector 7979 -RS03: try number = 347, reading sector 8058 -RS03: try number = 348, reading sector 8137 -RS03: try number = 349, reading sector 8216 -RS03: try number = 350, reading sector 8295 -RS03: try number = 351, reading sector 8374 -RS03: try number = 352, reading sector 8453 -RS03: try number = 353, reading sector 8532 -RS03: try number = 354, reading sector 8611 -RS03: try number = 355, reading sector 8690 -RS03: try number = 356, reading sector 8769 -RS03: try number = 357, reading sector 8848 -RS03: try number = 358, reading sector 8927 -RS03: try number = 359, reading sector 9006 -RS03: try number = 360, reading sector 9085 -RS03: try number = 361, reading sector 9164 -RS03: try number = 362, reading sector 9243 -RS03: try number = 363, reading sector 9322 -RS03: try number = 364, reading sector 9401 -RS03: try number = 365, reading sector 9480 -RS03: try number = 366, reading sector 9559 -RS03: try number = 367, reading sector 9638 -RS03: try number = 368, reading sector 9717 -RS03: try number = 369, reading sector 9796 -RS03: try number = 370, reading sector 9875 -RS03: try number = 371, reading sector 9954 -RS03: try number = 372, reading sector 10033 -RS03: try number = 373, reading sector 10112 -RS03: try number = 374, reading sector 10191 -RS03: try number = 375, reading sector 10270 -RS03: try number = 376, reading sector 10349 -RS03: try number = 377, reading sector 10428 -RS03: try number = 378, reading sector 10507 -RS03: try number = 379, reading sector 10586 -RS03: try number = 380, reading sector 10665 -RS03: try number = 381, reading sector 10744 -RS03: try number = 382, reading sector 10823 -RS03: try number = 383, reading sector 10902 -RS03: try number = 384, reading sector 10981 -RS03: try number = 385, reading sector 11060 -RS03: try number = 386, reading sector 11139 -RS03: try number = 387, reading sector 11218 -RS03: try number = 388, reading sector 11297 -RS03: try number = 389, reading sector 11376 -RS03: try number = 390, reading sector 11455 -RS03: try number = 391, reading sector 11534 -RS03: try number = 392, reading sector 11613 -RS03: try number = 393, reading sector 11692 -RS03: try number = 394, reading sector 11771 -RS03: try number = 395, reading sector 11850 -RS03: try number = 396, reading sector 11929 -RS03: try number = 397, reading sector 12008 -RS03: try number = 398, reading sector 12087 -RS03: try number = 399, reading sector 12166 -RS03: try number = 400, reading sector 12245 -RS03: try number = 401, reading sector 12324 -RS03: try number = 402, reading sector 12403 -RS03: try number = 403, reading sector 12482 -RS03: try number = 404, reading sector 12561 -RS03: try number = 405, reading sector 12640 -RS03: try number = 406, reading sector 12719 -RS03: try number = 407, reading sector 12798 -RS03: try number = 408, reading sector 12877 -RS03: try number = 409, reading sector 12956 -RS03: try number = 410, reading sector 13035 -RS03: try number = 411, reading sector 13114 -RS03: try number = 412, reading sector 13193 -RS03: try number = 413, reading sector 13272 -RS03: try number = 414, reading sector 13351 -RS03: try number = 415, reading sector 13430 -RS03: try number = 416, reading sector 13509 -RS03: try number = 417, reading sector 13588 -RS03: try number = 418, reading sector 13667 -RS03: try number = 419, reading sector 13746 -RS03: try number = 420, reading sector 13825 -RS03: try number = 421, reading sector 13904 -RS03: try number = 422, reading sector 13983 -RS03: try number = 423, reading sector 14062 -RS03: try number = 424, reading sector 14141 -RS03: try number = 425, reading sector 14220 -RS03: try number = 426, reading sector 14299 -RS03: try number = 427, reading sector 14378 -RS03: try number = 428, reading sector 14457 -RS03: try number = 429, reading sector 14536 -RS03: try number = 430, reading sector 14615 -RS03: try number = 431, reading sector 14694 -RS03: try number = 432, reading sector 14773 -RS03: try number = 433, reading sector 14852 -RS03: try number = 434, reading sector 14931 -RS03: try number = 435, reading sector 15010 -RS03: try number = 436, reading sector 15089 -RS03: try number = 437, reading sector 15168 -RS03: try number = 438, reading sector 15247 -RS03: try number = 439, reading sector 15326 -RS03: try number = 440, reading sector 15405 -RS03: try number = 441, reading sector 15484 -RS03: try number = 442, reading sector 15563 -RS03: try number = 443, reading sector 15642 -RS03: try number = 444, reading sector 15721 -RS03: try number = 445, reading sector 15800 -RS03: try number = 446, reading sector 15879 -RS03: try number = 447, reading sector 15958 -RS03: try number = 448, reading sector 16037 -RS03: try number = 449, reading sector 16116 -RS03: try number = 450, reading sector 16195 -RS03: try number = 451, reading sector 16274 -RS03: try number = 452, reading sector 16353 -RS03: try number = 453, reading sector 16432 -RS03: try number = 454, reading sector 16511 -RS03: try number = 455, reading sector 16590 -RS03: try number = 456, reading sector 16669 -RS03: try number = 457, reading sector 16748 -RS03: try number = 458, reading sector 16827 -RS03: try number = 459, reading sector 16906 -RS03: try number = 460, reading sector 16985 -RS03: try number = 461, reading sector 17064 -RS03: try number = 462, reading sector 17143 -RS03: try number = 463, reading sector 17222 -RS03: try number = 464, reading sector 17301 -RS03: try number = 465, reading sector 17380 -RS03: try number = 466, reading sector 17459 -RS03: try number = 467, reading sector 17538 -RS03: try number = 468, reading sector 17617 -RS03: try number = 469, reading sector 17696 -RS03: try number = 470, reading sector 17775 -RS03: try number = 471, reading sector 17854 -RS03: try number = 472, reading sector 17933 -RS03: try number = 473, reading sector 18012 -RS03: try number = 474, reading sector 18091 -RS03: try number = 475, reading sector 18170 -RS03: try number = 476, reading sector 18249 -RS03: try number = 477, reading sector 18328 -RS03: try number = 478, reading sector 18407 -RS03: try number = 479, reading sector 18486 -RS03: try number = 480, reading sector 18565 -RS03: try number = 481, reading sector 18644 -RS03: try number = 482, reading sector 18723 -RS03: try number = 483, reading sector 18802 -RS03: try number = 484, reading sector 18881 -RS03: try number = 485, reading sector 18960 -RS03: try number = 486, reading sector 19039 -RS03: try number = 487, reading sector 19118 -RS03: try number = 488, reading sector 19197 -RS03: try number = 489, reading sector 19276 -RS03: try number = 490, reading sector 19355 -RS03: try number = 491, reading sector 19434 -RS03: try number = 492, reading sector 19513 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_uncorrectable_dsm_in_image2_verbose b/regtest/database/RS03f_uncorrectable_dsm_in_image2_verbose index 381876ef..73fda1ef 100644 --- a/regtest/database/RS03f_uncorrectable_dsm_in_image2_verbose +++ b/regtest/database/RS03f_uncorrectable_dsm_in_image2_verbose @@ -130,511 +130,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03f_uncorrectable_dsm_in_image_verbose b/regtest/database/RS03f_uncorrectable_dsm_in_image_verbose index 37f047cc..34bfa971 100644 --- a/regtest/database/RS03f_uncorrectable_dsm_in_image_verbose +++ b/regtest/database/RS03f_uncorrectable_dsm_in_image_verbose @@ -130,511 +130,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03i_ecc_create_after_partial_read b/regtest/database/RS03i_ecc_create_after_partial_read index da711c81..9bc21aca 100644 --- a/regtest/database/RS03i_ecc_create_after_partial_read +++ b/regtest/database/RS03i_ecc_create_after_partial_read @@ -438,511 +438,6 @@ RS03: try number = 129, reading sector 20776 RS03: try number = 130, reading sector 20874 RS03: try number = 131, reading sector 20972 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 132, reading sector 6804 -RS03: try number = 133, reading sector 6885 -RS03: try number = 134, reading sector 6966 -RS03: try number = 135, reading sector 7047 -RS03: try number = 136, reading sector 7128 -RS03: try number = 137, reading sector 7209 -RS03: try number = 138, reading sector 7290 -RS03: try number = 139, reading sector 7371 -RS03: try number = 140, reading sector 7452 -RS03: try number = 141, reading sector 7533 -RS03: try number = 142, reading sector 7614 -RS03: try number = 143, reading sector 7695 -RS03: try number = 144, reading sector 7776 -RS03: try number = 145, reading sector 7857 -RS03: try number = 146, reading sector 7938 -RS03: try number = 147, reading sector 8019 -RS03: try number = 148, reading sector 8100 -RS03: try number = 149, reading sector 8181 -RS03: try number = 150, reading sector 8262 -RS03: try number = 151, reading sector 8343 -RS03: try number = 152, reading sector 8424 -RS03: try number = 153, reading sector 8505 -RS03: try number = 154, reading sector 8586 -RS03: try number = 155, reading sector 8667 -RS03: try number = 156, reading sector 8748 -RS03: try number = 157, reading sector 8829 -RS03: try number = 158, reading sector 8910 -RS03: try number = 159, reading sector 8991 -RS03: try number = 160, reading sector 9072 -RS03: try number = 161, reading sector 9153 -RS03: try number = 162, reading sector 9234 -RS03: try number = 163, reading sector 9315 -RS03: try number = 164, reading sector 9396 -RS03: try number = 165, reading sector 9477 -RS03: try number = 166, reading sector 9558 -RS03: try number = 167, reading sector 9639 -RS03: try number = 168, reading sector 9720 -RS03: try number = 169, reading sector 9801 -RS03: try number = 170, reading sector 9882 -RS03: try number = 171, reading sector 9963 -RS03: try number = 172, reading sector 10044 -RS03: try number = 173, reading sector 10125 -RS03: try number = 174, reading sector 10206 -RS03: try number = 175, reading sector 10287 -RS03: try number = 176, reading sector 10368 -RS03: try number = 177, reading sector 10449 -RS03: try number = 178, reading sector 10530 -RS03: try number = 179, reading sector 10611 -RS03: try number = 180, reading sector 10692 -RS03: try number = 181, reading sector 10773 -RS03: try number = 182, reading sector 10854 -RS03: try number = 183, reading sector 10935 -RS03: try number = 184, reading sector 11016 -RS03: try number = 185, reading sector 11097 -RS03: try number = 186, reading sector 11178 -RS03: try number = 187, reading sector 11259 -RS03: try number = 188, reading sector 11340 -RS03: try number = 189, reading sector 11421 -RS03: try number = 190, reading sector 11502 -RS03: try number = 191, reading sector 11583 -RS03: try number = 192, reading sector 11664 -RS03: try number = 193, reading sector 11745 -RS03: try number = 194, reading sector 11826 -RS03: try number = 195, reading sector 11907 -RS03: try number = 196, reading sector 11988 -RS03: try number = 197, reading sector 12069 -RS03: try number = 198, reading sector 12150 -RS03: try number = 199, reading sector 12231 -RS03: try number = 200, reading sector 12312 -RS03: try number = 201, reading sector 12393 -RS03: try number = 202, reading sector 12474 -RS03: try number = 203, reading sector 12555 -RS03: try number = 204, reading sector 12636 -RS03: try number = 205, reading sector 12717 -RS03: try number = 206, reading sector 12798 -RS03: try number = 207, reading sector 12879 -RS03: try number = 208, reading sector 12960 -RS03: try number = 209, reading sector 13041 -RS03: try number = 210, reading sector 13122 -RS03: try number = 211, reading sector 13203 -RS03: try number = 212, reading sector 13284 -RS03: try number = 213, reading sector 13365 -RS03: try number = 214, reading sector 13446 -RS03: try number = 215, reading sector 13527 -RS03: try number = 216, reading sector 13608 -RS03: try number = 217, reading sector 13689 -RS03: try number = 218, reading sector 13770 -RS03: try number = 219, reading sector 13851 -RS03: try number = 220, reading sector 13932 -RS03: try number = 221, reading sector 14013 -RS03: try number = 222, reading sector 14094 -RS03: try number = 223, reading sector 14175 -RS03: try number = 224, reading sector 14256 -RS03: try number = 225, reading sector 14337 -RS03: try number = 226, reading sector 14418 -RS03: try number = 227, reading sector 14499 -RS03: try number = 228, reading sector 14580 -RS03: try number = 229, reading sector 14661 -RS03: try number = 230, reading sector 14742 -RS03: try number = 231, reading sector 14823 -RS03: try number = 232, reading sector 14904 -RS03: try number = 233, reading sector 14985 -RS03: try number = 234, reading sector 15066 -RS03: try number = 235, reading sector 15147 -RS03: try number = 236, reading sector 15228 -RS03: try number = 237, reading sector 15309 -RS03: try number = 238, reading sector 15390 -RS03: try number = 239, reading sector 15471 -RS03: try number = 240, reading sector 15552 -RS03: try number = 241, reading sector 15633 -RS03: try number = 242, reading sector 15714 -RS03: try number = 243, reading sector 15795 -RS03: try number = 244, reading sector 15876 -RS03: try number = 245, reading sector 15957 -RS03: try number = 246, reading sector 16038 -RS03: try number = 247, reading sector 16119 -RS03: try number = 248, reading sector 16200 -RS03: try number = 249, reading sector 16281 -RS03: try number = 250, reading sector 16362 -RS03: try number = 251, reading sector 16443 -RS03: try number = 252, reading sector 16524 -RS03: try number = 253, reading sector 16605 -RS03: try number = 254, reading sector 16686 -RS03: try number = 255, reading sector 16767 -RS03: try number = 256, reading sector 16848 -RS03: try number = 257, reading sector 16929 -RS03: try number = 258, reading sector 17010 -RS03: try number = 259, reading sector 17091 -RS03: try number = 260, reading sector 17172 -RS03: try number = 261, reading sector 17253 -RS03: try number = 262, reading sector 17334 -RS03: try number = 263, reading sector 17415 -RS03: try number = 264, reading sector 17496 -RS03: try number = 265, reading sector 17577 -RS03: try number = 266, reading sector 17658 -RS03: try number = 267, reading sector 17739 -RS03: try number = 268, reading sector 17820 -RS03: try number = 269, reading sector 17901 -RS03: try number = 270, reading sector 17982 -RS03: try number = 271, reading sector 18063 -RS03: try number = 272, reading sector 18144 -RS03: try number = 273, reading sector 18225 -RS03: try number = 274, reading sector 18306 -RS03: try number = 275, reading sector 18387 -RS03: try number = 276, reading sector 18468 -RS03: try number = 277, reading sector 18549 -RS03: try number = 278, reading sector 18630 -RS03: try number = 279, reading sector 18711 -RS03: try number = 280, reading sector 18792 -RS03: try number = 281, reading sector 18873 -RS03: try number = 282, reading sector 18954 -RS03: try number = 283, reading sector 19035 -RS03: try number = 284, reading sector 19116 -RS03: try number = 285, reading sector 19197 -RS03: try number = 286, reading sector 19278 -RS03: try number = 287, reading sector 19359 -RS03: try number = 288, reading sector 19440 -RS03: try number = 289, reading sector 19521 -RS03: try number = 290, reading sector 19602 -RS03: try number = 291, reading sector 19683 -RS03: try number = 292, reading sector 19764 -RS03: try number = 293, reading sector 19845 -RS03: try number = 294, reading sector 19926 -RS03: try number = 295, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 296, reading sector 6888 -RS03: try number = 297, reading sector 6970 -RS03: try number = 298, reading sector 7052 -RS03: try number = 299, reading sector 7134 -RS03: try number = 300, reading sector 7216 -RS03: try number = 301, reading sector 7298 -RS03: try number = 302, reading sector 7380 -RS03: try number = 303, reading sector 7462 -RS03: try number = 304, reading sector 7544 -RS03: try number = 305, reading sector 7626 -RS03: try number = 306, reading sector 7708 -RS03: try number = 307, reading sector 7790 -RS03: try number = 308, reading sector 7872 -RS03: try number = 309, reading sector 7954 -RS03: try number = 310, reading sector 8036 -RS03: try number = 311, reading sector 8118 -RS03: try number = 312, reading sector 8200 -RS03: try number = 313, reading sector 8282 -RS03: try number = 314, reading sector 8364 -RS03: try number = 315, reading sector 8446 -RS03: try number = 316, reading sector 8528 -RS03: try number = 317, reading sector 8610 -RS03: try number = 318, reading sector 8692 -RS03: try number = 319, reading sector 8774 -RS03: try number = 320, reading sector 8856 -RS03: try number = 321, reading sector 8938 -RS03: try number = 322, reading sector 9020 -RS03: try number = 323, reading sector 9102 -RS03: try number = 324, reading sector 9184 -RS03: try number = 325, reading sector 9266 -RS03: try number = 326, reading sector 9348 -RS03: try number = 327, reading sector 9430 -RS03: try number = 328, reading sector 9512 -RS03: try number = 329, reading sector 9594 -RS03: try number = 330, reading sector 9676 -RS03: try number = 331, reading sector 9758 -RS03: try number = 332, reading sector 9840 -RS03: try number = 333, reading sector 9922 -RS03: try number = 334, reading sector 10004 -RS03: try number = 335, reading sector 10086 -RS03: try number = 336, reading sector 10168 -RS03: try number = 337, reading sector 10250 -RS03: try number = 338, reading sector 10332 -RS03: try number = 339, reading sector 10414 -RS03: try number = 340, reading sector 10496 -RS03: try number = 341, reading sector 10578 -RS03: try number = 342, reading sector 10660 -RS03: try number = 343, reading sector 10742 -RS03: try number = 344, reading sector 10824 -RS03: try number = 345, reading sector 10906 -RS03: try number = 346, reading sector 10988 -RS03: try number = 347, reading sector 11070 -RS03: try number = 348, reading sector 11152 -RS03: try number = 349, reading sector 11234 -RS03: try number = 350, reading sector 11316 -RS03: try number = 351, reading sector 11398 -RS03: try number = 352, reading sector 11480 -RS03: try number = 353, reading sector 11562 -RS03: try number = 354, reading sector 11644 -RS03: try number = 355, reading sector 11726 -RS03: try number = 356, reading sector 11808 -RS03: try number = 357, reading sector 11890 -RS03: try number = 358, reading sector 11972 -RS03: try number = 359, reading sector 12054 -RS03: try number = 360, reading sector 12136 -RS03: try number = 361, reading sector 12218 -RS03: try number = 362, reading sector 12300 -RS03: try number = 363, reading sector 12382 -RS03: try number = 364, reading sector 12464 -RS03: try number = 365, reading sector 12546 -RS03: try number = 366, reading sector 12628 -RS03: try number = 367, reading sector 12710 -RS03: try number = 368, reading sector 12792 -RS03: try number = 369, reading sector 12874 -RS03: try number = 370, reading sector 12956 -RS03: try number = 371, reading sector 13038 -RS03: try number = 372, reading sector 13120 -RS03: try number = 373, reading sector 13202 -RS03: try number = 374, reading sector 13284 -RS03: try number = 375, reading sector 13366 -RS03: try number = 376, reading sector 13448 -RS03: try number = 377, reading sector 13530 -RS03: try number = 378, reading sector 13612 -RS03: try number = 379, reading sector 13694 -RS03: try number = 380, reading sector 13776 -RS03: try number = 381, reading sector 13858 -RS03: try number = 382, reading sector 13940 -RS03: try number = 383, reading sector 14022 -RS03: try number = 384, reading sector 14104 -RS03: try number = 385, reading sector 14186 -RS03: try number = 386, reading sector 14268 -RS03: try number = 387, reading sector 14350 -RS03: try number = 388, reading sector 14432 -RS03: try number = 389, reading sector 14514 -RS03: try number = 390, reading sector 14596 -RS03: try number = 391, reading sector 14678 -RS03: try number = 392, reading sector 14760 -RS03: try number = 393, reading sector 14842 -RS03: try number = 394, reading sector 14924 -RS03: try number = 395, reading sector 15006 -RS03: try number = 396, reading sector 15088 -RS03: try number = 397, reading sector 15170 -RS03: try number = 398, reading sector 15252 -RS03: try number = 399, reading sector 15334 -RS03: try number = 400, reading sector 15416 -RS03: try number = 401, reading sector 15498 -RS03: try number = 402, reading sector 15580 -RS03: try number = 403, reading sector 15662 -RS03: try number = 404, reading sector 15744 -RS03: try number = 405, reading sector 15826 -RS03: try number = 406, reading sector 15908 -RS03: try number = 407, reading sector 15990 -RS03: try number = 408, reading sector 16072 -RS03: try number = 409, reading sector 16154 -RS03: try number = 410, reading sector 16236 -RS03: try number = 411, reading sector 16318 -RS03: try number = 412, reading sector 16400 -RS03: try number = 413, reading sector 16482 -RS03: try number = 414, reading sector 16564 -RS03: try number = 415, reading sector 16646 -RS03: try number = 416, reading sector 16728 -RS03: try number = 417, reading sector 16810 -RS03: try number = 418, reading sector 16892 -RS03: try number = 419, reading sector 16974 -RS03: try number = 420, reading sector 17056 -RS03: try number = 421, reading sector 17138 -RS03: try number = 422, reading sector 17220 -RS03: try number = 423, reading sector 17302 -RS03: try number = 424, reading sector 17384 -RS03: try number = 425, reading sector 17466 -RS03: try number = 426, reading sector 17548 -RS03: try number = 427, reading sector 17630 -RS03: try number = 428, reading sector 17712 -RS03: try number = 429, reading sector 17794 -RS03: try number = 430, reading sector 17876 -RS03: try number = 431, reading sector 17958 -RS03: try number = 432, reading sector 18040 -RS03: try number = 433, reading sector 18122 -RS03: try number = 434, reading sector 18204 -RS03: try number = 435, reading sector 18286 -RS03: try number = 436, reading sector 18368 -RS03: try number = 437, reading sector 18450 -RS03: try number = 438, reading sector 18532 -RS03: try number = 439, reading sector 18614 -RS03: try number = 440, reading sector 18696 -RS03: try number = 441, reading sector 18778 -RS03: try number = 442, reading sector 18860 -RS03: try number = 443, reading sector 18942 -RS03: try number = 444, reading sector 19024 -RS03: try number = 445, reading sector 19106 -RS03: try number = 446, reading sector 19188 -RS03: try number = 447, reading sector 19270 -RS03: try number = 448, reading sector 19352 -RS03: try number = 449, reading sector 19434 -RS03: try number = 450, reading sector 19516 -RS03: try number = 451, reading sector 19598 -RS03: try number = 452, reading sector 19680 -RS03: try number = 453, reading sector 19762 -RS03: try number = 454, reading sector 19844 -RS03: try number = 455, reading sector 19926 -RS03: try number = 456, reading sector 20008 -RS03: try number = 457, reading sector 20090 -RS03: try number = 458, reading sector 20172 -RS03: try number = 459, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 460, reading sector 6972 -RS03: try number = 461, reading sector 7055 -RS03: try number = 462, reading sector 7138 -RS03: try number = 463, reading sector 7221 -RS03: try number = 464, reading sector 7304 -RS03: try number = 465, reading sector 7387 -RS03: try number = 466, reading sector 7470 -RS03: try number = 467, reading sector 7553 -RS03: try number = 468, reading sector 7636 -RS03: try number = 469, reading sector 7719 -RS03: try number = 470, reading sector 7802 -RS03: try number = 471, reading sector 7885 -RS03: try number = 472, reading sector 7968 -RS03: try number = 473, reading sector 8051 -RS03: try number = 474, reading sector 8134 -RS03: try number = 475, reading sector 8217 -RS03: try number = 476, reading sector 8300 -RS03: try number = 477, reading sector 8383 -RS03: try number = 478, reading sector 8466 -RS03: try number = 479, reading sector 8549 -RS03: try number = 480, reading sector 8632 -RS03: try number = 481, reading sector 8715 -RS03: try number = 482, reading sector 8798 -RS03: try number = 483, reading sector 8881 -RS03: try number = 484, reading sector 8964 -RS03: try number = 485, reading sector 9047 -RS03: try number = 486, reading sector 9130 -RS03: try number = 487, reading sector 9213 -RS03: try number = 488, reading sector 9296 -RS03: try number = 489, reading sector 9379 -RS03: try number = 490, reading sector 9462 -RS03: try number = 491, reading sector 9545 -RS03: try number = 492, reading sector 9628 -RS03: try number = 493, reading sector 9711 -RS03: try number = 494, reading sector 9794 -RS03: try number = 495, reading sector 9877 -RS03: try number = 496, reading sector 9960 -RS03: try number = 497, reading sector 10043 -RS03: try number = 498, reading sector 10126 -RS03: try number = 499, reading sector 10209 -RS03: try number = 500, reading sector 10292 -RS03: try number = 501, reading sector 10375 -RS03: try number = 502, reading sector 10458 -RS03: try number = 503, reading sector 10541 -RS03: try number = 504, reading sector 10624 -RS03: try number = 505, reading sector 10707 -RS03: try number = 506, reading sector 10790 -RS03: try number = 507, reading sector 10873 -RS03: try number = 508, reading sector 10956 -RS03: try number = 509, reading sector 11039 -RS03: try number = 510, reading sector 11122 -RS03: try number = 511, reading sector 11205 -RS03: try number = 512, reading sector 11288 -RS03: try number = 513, reading sector 11371 -RS03: try number = 514, reading sector 11454 -RS03: try number = 515, reading sector 11537 -RS03: try number = 516, reading sector 11620 -RS03: try number = 517, reading sector 11703 -RS03: try number = 518, reading sector 11786 -RS03: try number = 519, reading sector 11869 -RS03: try number = 520, reading sector 11952 -RS03: try number = 521, reading sector 12035 -RS03: try number = 522, reading sector 12118 -RS03: try number = 523, reading sector 12201 -RS03: try number = 524, reading sector 12284 -RS03: try number = 525, reading sector 12367 -RS03: try number = 526, reading sector 12450 -RS03: try number = 527, reading sector 12533 -RS03: try number = 528, reading sector 12616 -RS03: try number = 529, reading sector 12699 -RS03: try number = 530, reading sector 12782 -RS03: try number = 531, reading sector 12865 -RS03: try number = 532, reading sector 12948 -RS03: try number = 533, reading sector 13031 -RS03: try number = 534, reading sector 13114 -RS03: try number = 535, reading sector 13197 -RS03: try number = 536, reading sector 13280 -RS03: try number = 537, reading sector 13363 -RS03: try number = 538, reading sector 13446 -RS03: try number = 539, reading sector 13529 -RS03: try number = 540, reading sector 13612 -RS03: try number = 541, reading sector 13695 -RS03: try number = 542, reading sector 13778 -RS03: try number = 543, reading sector 13861 -RS03: try number = 544, reading sector 13944 -RS03: try number = 545, reading sector 14027 -RS03: try number = 546, reading sector 14110 -RS03: try number = 547, reading sector 14193 -RS03: try number = 548, reading sector 14276 -RS03: try number = 549, reading sector 14359 -RS03: try number = 550, reading sector 14442 -RS03: try number = 551, reading sector 14525 -RS03: try number = 552, reading sector 14608 -RS03: try number = 553, reading sector 14691 -RS03: try number = 554, reading sector 14774 -RS03: try number = 555, reading sector 14857 -RS03: try number = 556, reading sector 14940 -RS03: try number = 557, reading sector 15023 -RS03: try number = 558, reading sector 15106 -RS03: try number = 559, reading sector 15189 -RS03: try number = 560, reading sector 15272 -RS03: try number = 561, reading sector 15355 -RS03: try number = 562, reading sector 15438 -RS03: try number = 563, reading sector 15521 -RS03: try number = 564, reading sector 15604 -RS03: try number = 565, reading sector 15687 -RS03: try number = 566, reading sector 15770 -RS03: try number = 567, reading sector 15853 -RS03: try number = 568, reading sector 15936 -RS03: try number = 569, reading sector 16019 -RS03: try number = 570, reading sector 16102 -RS03: try number = 571, reading sector 16185 -RS03: try number = 572, reading sector 16268 -RS03: try number = 573, reading sector 16351 -RS03: try number = 574, reading sector 16434 -RS03: try number = 575, reading sector 16517 -RS03: try number = 576, reading sector 16600 -RS03: try number = 577, reading sector 16683 -RS03: try number = 578, reading sector 16766 -RS03: try number = 579, reading sector 16849 -RS03: try number = 580, reading sector 16932 -RS03: try number = 581, reading sector 17015 -RS03: try number = 582, reading sector 17098 -RS03: try number = 583, reading sector 17181 -RS03: try number = 584, reading sector 17264 -RS03: try number = 585, reading sector 17347 -RS03: try number = 586, reading sector 17430 -RS03: try number = 587, reading sector 17513 -RS03: try number = 588, reading sector 17596 -RS03: try number = 589, reading sector 17679 -RS03: try number = 590, reading sector 17762 -RS03: try number = 591, reading sector 17845 -RS03: try number = 592, reading sector 17928 -RS03: try number = 593, reading sector 18011 -RS03: try number = 594, reading sector 18094 -RS03: try number = 595, reading sector 18177 -RS03: try number = 596, reading sector 18260 -RS03: try number = 597, reading sector 18343 -RS03: try number = 598, reading sector 18426 -RS03: try number = 599, reading sector 18509 -RS03: try number = 600, reading sector 18592 -RS03: try number = 601, reading sector 18675 -RS03: try number = 602, reading sector 18758 -RS03: try number = 603, reading sector 18841 -RS03: try number = 604, reading sector 18924 -RS03: try number = 605, reading sector 19007 -RS03: try number = 606, reading sector 19090 -RS03: try number = 607, reading sector 19173 -RS03: try number = 608, reading sector 19256 -RS03: try number = 609, reading sector 19339 -RS03: try number = 610, reading sector 19422 -RS03: try number = 611, reading sector 19505 -RS03: try number = 612, reading sector 19588 -RS03: try number = 613, reading sector 19671 -RS03: try number = 614, reading sector 19754 -RS03: try number = 615, reading sector 19837 -RS03: try number = 616, reading sector 19920 -RS03: try number = 617, reading sector 20003 -RS03: try number = 618, reading sector 20086 -RS03: try number = 619, reading sector 20169 -RS03: try number = 620, reading sector 20252 -RS03: try number = 621, reading sector 20335 -RS03: try number = 622, reading sector 20418 -RS03: try number = 623, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03i_ecc_create_after_read b/regtest/database/RS03i_ecc_create_after_read index cc45e41e..6d068873 100644 --- a/regtest/database/RS03i_ecc_create_after_read +++ b/regtest/database/RS03i_ecc_create_after_read @@ -439,511 +439,6 @@ RS03: try number = 129, reading sector 20776 RS03: try number = 130, reading sector 20874 RS03: try number = 131, reading sector 20972 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 132, reading sector 6804 -RS03: try number = 133, reading sector 6885 -RS03: try number = 134, reading sector 6966 -RS03: try number = 135, reading sector 7047 -RS03: try number = 136, reading sector 7128 -RS03: try number = 137, reading sector 7209 -RS03: try number = 138, reading sector 7290 -RS03: try number = 139, reading sector 7371 -RS03: try number = 140, reading sector 7452 -RS03: try number = 141, reading sector 7533 -RS03: try number = 142, reading sector 7614 -RS03: try number = 143, reading sector 7695 -RS03: try number = 144, reading sector 7776 -RS03: try number = 145, reading sector 7857 -RS03: try number = 146, reading sector 7938 -RS03: try number = 147, reading sector 8019 -RS03: try number = 148, reading sector 8100 -RS03: try number = 149, reading sector 8181 -RS03: try number = 150, reading sector 8262 -RS03: try number = 151, reading sector 8343 -RS03: try number = 152, reading sector 8424 -RS03: try number = 153, reading sector 8505 -RS03: try number = 154, reading sector 8586 -RS03: try number = 155, reading sector 8667 -RS03: try number = 156, reading sector 8748 -RS03: try number = 157, reading sector 8829 -RS03: try number = 158, reading sector 8910 -RS03: try number = 159, reading sector 8991 -RS03: try number = 160, reading sector 9072 -RS03: try number = 161, reading sector 9153 -RS03: try number = 162, reading sector 9234 -RS03: try number = 163, reading sector 9315 -RS03: try number = 164, reading sector 9396 -RS03: try number = 165, reading sector 9477 -RS03: try number = 166, reading sector 9558 -RS03: try number = 167, reading sector 9639 -RS03: try number = 168, reading sector 9720 -RS03: try number = 169, reading sector 9801 -RS03: try number = 170, reading sector 9882 -RS03: try number = 171, reading sector 9963 -RS03: try number = 172, reading sector 10044 -RS03: try number = 173, reading sector 10125 -RS03: try number = 174, reading sector 10206 -RS03: try number = 175, reading sector 10287 -RS03: try number = 176, reading sector 10368 -RS03: try number = 177, reading sector 10449 -RS03: try number = 178, reading sector 10530 -RS03: try number = 179, reading sector 10611 -RS03: try number = 180, reading sector 10692 -RS03: try number = 181, reading sector 10773 -RS03: try number = 182, reading sector 10854 -RS03: try number = 183, reading sector 10935 -RS03: try number = 184, reading sector 11016 -RS03: try number = 185, reading sector 11097 -RS03: try number = 186, reading sector 11178 -RS03: try number = 187, reading sector 11259 -RS03: try number = 188, reading sector 11340 -RS03: try number = 189, reading sector 11421 -RS03: try number = 190, reading sector 11502 -RS03: try number = 191, reading sector 11583 -RS03: try number = 192, reading sector 11664 -RS03: try number = 193, reading sector 11745 -RS03: try number = 194, reading sector 11826 -RS03: try number = 195, reading sector 11907 -RS03: try number = 196, reading sector 11988 -RS03: try number = 197, reading sector 12069 -RS03: try number = 198, reading sector 12150 -RS03: try number = 199, reading sector 12231 -RS03: try number = 200, reading sector 12312 -RS03: try number = 201, reading sector 12393 -RS03: try number = 202, reading sector 12474 -RS03: try number = 203, reading sector 12555 -RS03: try number = 204, reading sector 12636 -RS03: try number = 205, reading sector 12717 -RS03: try number = 206, reading sector 12798 -RS03: try number = 207, reading sector 12879 -RS03: try number = 208, reading sector 12960 -RS03: try number = 209, reading sector 13041 -RS03: try number = 210, reading sector 13122 -RS03: try number = 211, reading sector 13203 -RS03: try number = 212, reading sector 13284 -RS03: try number = 213, reading sector 13365 -RS03: try number = 214, reading sector 13446 -RS03: try number = 215, reading sector 13527 -RS03: try number = 216, reading sector 13608 -RS03: try number = 217, reading sector 13689 -RS03: try number = 218, reading sector 13770 -RS03: try number = 219, reading sector 13851 -RS03: try number = 220, reading sector 13932 -RS03: try number = 221, reading sector 14013 -RS03: try number = 222, reading sector 14094 -RS03: try number = 223, reading sector 14175 -RS03: try number = 224, reading sector 14256 -RS03: try number = 225, reading sector 14337 -RS03: try number = 226, reading sector 14418 -RS03: try number = 227, reading sector 14499 -RS03: try number = 228, reading sector 14580 -RS03: try number = 229, reading sector 14661 -RS03: try number = 230, reading sector 14742 -RS03: try number = 231, reading sector 14823 -RS03: try number = 232, reading sector 14904 -RS03: try number = 233, reading sector 14985 -RS03: try number = 234, reading sector 15066 -RS03: try number = 235, reading sector 15147 -RS03: try number = 236, reading sector 15228 -RS03: try number = 237, reading sector 15309 -RS03: try number = 238, reading sector 15390 -RS03: try number = 239, reading sector 15471 -RS03: try number = 240, reading sector 15552 -RS03: try number = 241, reading sector 15633 -RS03: try number = 242, reading sector 15714 -RS03: try number = 243, reading sector 15795 -RS03: try number = 244, reading sector 15876 -RS03: try number = 245, reading sector 15957 -RS03: try number = 246, reading sector 16038 -RS03: try number = 247, reading sector 16119 -RS03: try number = 248, reading sector 16200 -RS03: try number = 249, reading sector 16281 -RS03: try number = 250, reading sector 16362 -RS03: try number = 251, reading sector 16443 -RS03: try number = 252, reading sector 16524 -RS03: try number = 253, reading sector 16605 -RS03: try number = 254, reading sector 16686 -RS03: try number = 255, reading sector 16767 -RS03: try number = 256, reading sector 16848 -RS03: try number = 257, reading sector 16929 -RS03: try number = 258, reading sector 17010 -RS03: try number = 259, reading sector 17091 -RS03: try number = 260, reading sector 17172 -RS03: try number = 261, reading sector 17253 -RS03: try number = 262, reading sector 17334 -RS03: try number = 263, reading sector 17415 -RS03: try number = 264, reading sector 17496 -RS03: try number = 265, reading sector 17577 -RS03: try number = 266, reading sector 17658 -RS03: try number = 267, reading sector 17739 -RS03: try number = 268, reading sector 17820 -RS03: try number = 269, reading sector 17901 -RS03: try number = 270, reading sector 17982 -RS03: try number = 271, reading sector 18063 -RS03: try number = 272, reading sector 18144 -RS03: try number = 273, reading sector 18225 -RS03: try number = 274, reading sector 18306 -RS03: try number = 275, reading sector 18387 -RS03: try number = 276, reading sector 18468 -RS03: try number = 277, reading sector 18549 -RS03: try number = 278, reading sector 18630 -RS03: try number = 279, reading sector 18711 -RS03: try number = 280, reading sector 18792 -RS03: try number = 281, reading sector 18873 -RS03: try number = 282, reading sector 18954 -RS03: try number = 283, reading sector 19035 -RS03: try number = 284, reading sector 19116 -RS03: try number = 285, reading sector 19197 -RS03: try number = 286, reading sector 19278 -RS03: try number = 287, reading sector 19359 -RS03: try number = 288, reading sector 19440 -RS03: try number = 289, reading sector 19521 -RS03: try number = 290, reading sector 19602 -RS03: try number = 291, reading sector 19683 -RS03: try number = 292, reading sector 19764 -RS03: try number = 293, reading sector 19845 -RS03: try number = 294, reading sector 19926 -RS03: try number = 295, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 296, reading sector 6888 -RS03: try number = 297, reading sector 6970 -RS03: try number = 298, reading sector 7052 -RS03: try number = 299, reading sector 7134 -RS03: try number = 300, reading sector 7216 -RS03: try number = 301, reading sector 7298 -RS03: try number = 302, reading sector 7380 -RS03: try number = 303, reading sector 7462 -RS03: try number = 304, reading sector 7544 -RS03: try number = 305, reading sector 7626 -RS03: try number = 306, reading sector 7708 -RS03: try number = 307, reading sector 7790 -RS03: try number = 308, reading sector 7872 -RS03: try number = 309, reading sector 7954 -RS03: try number = 310, reading sector 8036 -RS03: try number = 311, reading sector 8118 -RS03: try number = 312, reading sector 8200 -RS03: try number = 313, reading sector 8282 -RS03: try number = 314, reading sector 8364 -RS03: try number = 315, reading sector 8446 -RS03: try number = 316, reading sector 8528 -RS03: try number = 317, reading sector 8610 -RS03: try number = 318, reading sector 8692 -RS03: try number = 319, reading sector 8774 -RS03: try number = 320, reading sector 8856 -RS03: try number = 321, reading sector 8938 -RS03: try number = 322, reading sector 9020 -RS03: try number = 323, reading sector 9102 -RS03: try number = 324, reading sector 9184 -RS03: try number = 325, reading sector 9266 -RS03: try number = 326, reading sector 9348 -RS03: try number = 327, reading sector 9430 -RS03: try number = 328, reading sector 9512 -RS03: try number = 329, reading sector 9594 -RS03: try number = 330, reading sector 9676 -RS03: try number = 331, reading sector 9758 -RS03: try number = 332, reading sector 9840 -RS03: try number = 333, reading sector 9922 -RS03: try number = 334, reading sector 10004 -RS03: try number = 335, reading sector 10086 -RS03: try number = 336, reading sector 10168 -RS03: try number = 337, reading sector 10250 -RS03: try number = 338, reading sector 10332 -RS03: try number = 339, reading sector 10414 -RS03: try number = 340, reading sector 10496 -RS03: try number = 341, reading sector 10578 -RS03: try number = 342, reading sector 10660 -RS03: try number = 343, reading sector 10742 -RS03: try number = 344, reading sector 10824 -RS03: try number = 345, reading sector 10906 -RS03: try number = 346, reading sector 10988 -RS03: try number = 347, reading sector 11070 -RS03: try number = 348, reading sector 11152 -RS03: try number = 349, reading sector 11234 -RS03: try number = 350, reading sector 11316 -RS03: try number = 351, reading sector 11398 -RS03: try number = 352, reading sector 11480 -RS03: try number = 353, reading sector 11562 -RS03: try number = 354, reading sector 11644 -RS03: try number = 355, reading sector 11726 -RS03: try number = 356, reading sector 11808 -RS03: try number = 357, reading sector 11890 -RS03: try number = 358, reading sector 11972 -RS03: try number = 359, reading sector 12054 -RS03: try number = 360, reading sector 12136 -RS03: try number = 361, reading sector 12218 -RS03: try number = 362, reading sector 12300 -RS03: try number = 363, reading sector 12382 -RS03: try number = 364, reading sector 12464 -RS03: try number = 365, reading sector 12546 -RS03: try number = 366, reading sector 12628 -RS03: try number = 367, reading sector 12710 -RS03: try number = 368, reading sector 12792 -RS03: try number = 369, reading sector 12874 -RS03: try number = 370, reading sector 12956 -RS03: try number = 371, reading sector 13038 -RS03: try number = 372, reading sector 13120 -RS03: try number = 373, reading sector 13202 -RS03: try number = 374, reading sector 13284 -RS03: try number = 375, reading sector 13366 -RS03: try number = 376, reading sector 13448 -RS03: try number = 377, reading sector 13530 -RS03: try number = 378, reading sector 13612 -RS03: try number = 379, reading sector 13694 -RS03: try number = 380, reading sector 13776 -RS03: try number = 381, reading sector 13858 -RS03: try number = 382, reading sector 13940 -RS03: try number = 383, reading sector 14022 -RS03: try number = 384, reading sector 14104 -RS03: try number = 385, reading sector 14186 -RS03: try number = 386, reading sector 14268 -RS03: try number = 387, reading sector 14350 -RS03: try number = 388, reading sector 14432 -RS03: try number = 389, reading sector 14514 -RS03: try number = 390, reading sector 14596 -RS03: try number = 391, reading sector 14678 -RS03: try number = 392, reading sector 14760 -RS03: try number = 393, reading sector 14842 -RS03: try number = 394, reading sector 14924 -RS03: try number = 395, reading sector 15006 -RS03: try number = 396, reading sector 15088 -RS03: try number = 397, reading sector 15170 -RS03: try number = 398, reading sector 15252 -RS03: try number = 399, reading sector 15334 -RS03: try number = 400, reading sector 15416 -RS03: try number = 401, reading sector 15498 -RS03: try number = 402, reading sector 15580 -RS03: try number = 403, reading sector 15662 -RS03: try number = 404, reading sector 15744 -RS03: try number = 405, reading sector 15826 -RS03: try number = 406, reading sector 15908 -RS03: try number = 407, reading sector 15990 -RS03: try number = 408, reading sector 16072 -RS03: try number = 409, reading sector 16154 -RS03: try number = 410, reading sector 16236 -RS03: try number = 411, reading sector 16318 -RS03: try number = 412, reading sector 16400 -RS03: try number = 413, reading sector 16482 -RS03: try number = 414, reading sector 16564 -RS03: try number = 415, reading sector 16646 -RS03: try number = 416, reading sector 16728 -RS03: try number = 417, reading sector 16810 -RS03: try number = 418, reading sector 16892 -RS03: try number = 419, reading sector 16974 -RS03: try number = 420, reading sector 17056 -RS03: try number = 421, reading sector 17138 -RS03: try number = 422, reading sector 17220 -RS03: try number = 423, reading sector 17302 -RS03: try number = 424, reading sector 17384 -RS03: try number = 425, reading sector 17466 -RS03: try number = 426, reading sector 17548 -RS03: try number = 427, reading sector 17630 -RS03: try number = 428, reading sector 17712 -RS03: try number = 429, reading sector 17794 -RS03: try number = 430, reading sector 17876 -RS03: try number = 431, reading sector 17958 -RS03: try number = 432, reading sector 18040 -RS03: try number = 433, reading sector 18122 -RS03: try number = 434, reading sector 18204 -RS03: try number = 435, reading sector 18286 -RS03: try number = 436, reading sector 18368 -RS03: try number = 437, reading sector 18450 -RS03: try number = 438, reading sector 18532 -RS03: try number = 439, reading sector 18614 -RS03: try number = 440, reading sector 18696 -RS03: try number = 441, reading sector 18778 -RS03: try number = 442, reading sector 18860 -RS03: try number = 443, reading sector 18942 -RS03: try number = 444, reading sector 19024 -RS03: try number = 445, reading sector 19106 -RS03: try number = 446, reading sector 19188 -RS03: try number = 447, reading sector 19270 -RS03: try number = 448, reading sector 19352 -RS03: try number = 449, reading sector 19434 -RS03: try number = 450, reading sector 19516 -RS03: try number = 451, reading sector 19598 -RS03: try number = 452, reading sector 19680 -RS03: try number = 453, reading sector 19762 -RS03: try number = 454, reading sector 19844 -RS03: try number = 455, reading sector 19926 -RS03: try number = 456, reading sector 20008 -RS03: try number = 457, reading sector 20090 -RS03: try number = 458, reading sector 20172 -RS03: try number = 459, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 460, reading sector 6972 -RS03: try number = 461, reading sector 7055 -RS03: try number = 462, reading sector 7138 -RS03: try number = 463, reading sector 7221 -RS03: try number = 464, reading sector 7304 -RS03: try number = 465, reading sector 7387 -RS03: try number = 466, reading sector 7470 -RS03: try number = 467, reading sector 7553 -RS03: try number = 468, reading sector 7636 -RS03: try number = 469, reading sector 7719 -RS03: try number = 470, reading sector 7802 -RS03: try number = 471, reading sector 7885 -RS03: try number = 472, reading sector 7968 -RS03: try number = 473, reading sector 8051 -RS03: try number = 474, reading sector 8134 -RS03: try number = 475, reading sector 8217 -RS03: try number = 476, reading sector 8300 -RS03: try number = 477, reading sector 8383 -RS03: try number = 478, reading sector 8466 -RS03: try number = 479, reading sector 8549 -RS03: try number = 480, reading sector 8632 -RS03: try number = 481, reading sector 8715 -RS03: try number = 482, reading sector 8798 -RS03: try number = 483, reading sector 8881 -RS03: try number = 484, reading sector 8964 -RS03: try number = 485, reading sector 9047 -RS03: try number = 486, reading sector 9130 -RS03: try number = 487, reading sector 9213 -RS03: try number = 488, reading sector 9296 -RS03: try number = 489, reading sector 9379 -RS03: try number = 490, reading sector 9462 -RS03: try number = 491, reading sector 9545 -RS03: try number = 492, reading sector 9628 -RS03: try number = 493, reading sector 9711 -RS03: try number = 494, reading sector 9794 -RS03: try number = 495, reading sector 9877 -RS03: try number = 496, reading sector 9960 -RS03: try number = 497, reading sector 10043 -RS03: try number = 498, reading sector 10126 -RS03: try number = 499, reading sector 10209 -RS03: try number = 500, reading sector 10292 -RS03: try number = 501, reading sector 10375 -RS03: try number = 502, reading sector 10458 -RS03: try number = 503, reading sector 10541 -RS03: try number = 504, reading sector 10624 -RS03: try number = 505, reading sector 10707 -RS03: try number = 506, reading sector 10790 -RS03: try number = 507, reading sector 10873 -RS03: try number = 508, reading sector 10956 -RS03: try number = 509, reading sector 11039 -RS03: try number = 510, reading sector 11122 -RS03: try number = 511, reading sector 11205 -RS03: try number = 512, reading sector 11288 -RS03: try number = 513, reading sector 11371 -RS03: try number = 514, reading sector 11454 -RS03: try number = 515, reading sector 11537 -RS03: try number = 516, reading sector 11620 -RS03: try number = 517, reading sector 11703 -RS03: try number = 518, reading sector 11786 -RS03: try number = 519, reading sector 11869 -RS03: try number = 520, reading sector 11952 -RS03: try number = 521, reading sector 12035 -RS03: try number = 522, reading sector 12118 -RS03: try number = 523, reading sector 12201 -RS03: try number = 524, reading sector 12284 -RS03: try number = 525, reading sector 12367 -RS03: try number = 526, reading sector 12450 -RS03: try number = 527, reading sector 12533 -RS03: try number = 528, reading sector 12616 -RS03: try number = 529, reading sector 12699 -RS03: try number = 530, reading sector 12782 -RS03: try number = 531, reading sector 12865 -RS03: try number = 532, reading sector 12948 -RS03: try number = 533, reading sector 13031 -RS03: try number = 534, reading sector 13114 -RS03: try number = 535, reading sector 13197 -RS03: try number = 536, reading sector 13280 -RS03: try number = 537, reading sector 13363 -RS03: try number = 538, reading sector 13446 -RS03: try number = 539, reading sector 13529 -RS03: try number = 540, reading sector 13612 -RS03: try number = 541, reading sector 13695 -RS03: try number = 542, reading sector 13778 -RS03: try number = 543, reading sector 13861 -RS03: try number = 544, reading sector 13944 -RS03: try number = 545, reading sector 14027 -RS03: try number = 546, reading sector 14110 -RS03: try number = 547, reading sector 14193 -RS03: try number = 548, reading sector 14276 -RS03: try number = 549, reading sector 14359 -RS03: try number = 550, reading sector 14442 -RS03: try number = 551, reading sector 14525 -RS03: try number = 552, reading sector 14608 -RS03: try number = 553, reading sector 14691 -RS03: try number = 554, reading sector 14774 -RS03: try number = 555, reading sector 14857 -RS03: try number = 556, reading sector 14940 -RS03: try number = 557, reading sector 15023 -RS03: try number = 558, reading sector 15106 -RS03: try number = 559, reading sector 15189 -RS03: try number = 560, reading sector 15272 -RS03: try number = 561, reading sector 15355 -RS03: try number = 562, reading sector 15438 -RS03: try number = 563, reading sector 15521 -RS03: try number = 564, reading sector 15604 -RS03: try number = 565, reading sector 15687 -RS03: try number = 566, reading sector 15770 -RS03: try number = 567, reading sector 15853 -RS03: try number = 568, reading sector 15936 -RS03: try number = 569, reading sector 16019 -RS03: try number = 570, reading sector 16102 -RS03: try number = 571, reading sector 16185 -RS03: try number = 572, reading sector 16268 -RS03: try number = 573, reading sector 16351 -RS03: try number = 574, reading sector 16434 -RS03: try number = 575, reading sector 16517 -RS03: try number = 576, reading sector 16600 -RS03: try number = 577, reading sector 16683 -RS03: try number = 578, reading sector 16766 -RS03: try number = 579, reading sector 16849 -RS03: try number = 580, reading sector 16932 -RS03: try number = 581, reading sector 17015 -RS03: try number = 582, reading sector 17098 -RS03: try number = 583, reading sector 17181 -RS03: try number = 584, reading sector 17264 -RS03: try number = 585, reading sector 17347 -RS03: try number = 586, reading sector 17430 -RS03: try number = 587, reading sector 17513 -RS03: try number = 588, reading sector 17596 -RS03: try number = 589, reading sector 17679 -RS03: try number = 590, reading sector 17762 -RS03: try number = 591, reading sector 17845 -RS03: try number = 592, reading sector 17928 -RS03: try number = 593, reading sector 18011 -RS03: try number = 594, reading sector 18094 -RS03: try number = 595, reading sector 18177 -RS03: try number = 596, reading sector 18260 -RS03: try number = 597, reading sector 18343 -RS03: try number = 598, reading sector 18426 -RS03: try number = 599, reading sector 18509 -RS03: try number = 600, reading sector 18592 -RS03: try number = 601, reading sector 18675 -RS03: try number = 602, reading sector 18758 -RS03: try number = 603, reading sector 18841 -RS03: try number = 604, reading sector 18924 -RS03: try number = 605, reading sector 19007 -RS03: try number = 606, reading sector 19090 -RS03: try number = 607, reading sector 19173 -RS03: try number = 608, reading sector 19256 -RS03: try number = 609, reading sector 19339 -RS03: try number = 610, reading sector 19422 -RS03: try number = 611, reading sector 19505 -RS03: try number = 612, reading sector 19588 -RS03: try number = 613, reading sector 19671 -RS03: try number = 614, reading sector 19754 -RS03: try number = 615, reading sector 19837 -RS03: try number = 616, reading sector 19920 -RS03: try number = 617, reading sector 20003 -RS03: try number = 618, reading sector 20086 -RS03: try number = 619, reading sector 20169 -RS03: try number = 620, reading sector 20252 -RS03: try number = 621, reading sector 20335 -RS03: try number = 622, reading sector 20418 -RS03: try number = 623, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03i_ecc_recreate_after_read_rs01 b/regtest/database/RS03i_ecc_recreate_after_read_rs01 index f0337f6e..785f1627 100644 --- a/regtest/database/RS03i_ecc_recreate_after_read_rs01 +++ b/regtest/database/RS03i_ecc_recreate_after_read_rs01 @@ -441,511 +441,6 @@ RS03: try number = 129, reading sector 20776 RS03: try number = 130, reading sector 20874 RS03: try number = 131, reading sector 20972 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 132, reading sector 6804 -RS03: try number = 133, reading sector 6885 -RS03: try number = 134, reading sector 6966 -RS03: try number = 135, reading sector 7047 -RS03: try number = 136, reading sector 7128 -RS03: try number = 137, reading sector 7209 -RS03: try number = 138, reading sector 7290 -RS03: try number = 139, reading sector 7371 -RS03: try number = 140, reading sector 7452 -RS03: try number = 141, reading sector 7533 -RS03: try number = 142, reading sector 7614 -RS03: try number = 143, reading sector 7695 -RS03: try number = 144, reading sector 7776 -RS03: try number = 145, reading sector 7857 -RS03: try number = 146, reading sector 7938 -RS03: try number = 147, reading sector 8019 -RS03: try number = 148, reading sector 8100 -RS03: try number = 149, reading sector 8181 -RS03: try number = 150, reading sector 8262 -RS03: try number = 151, reading sector 8343 -RS03: try number = 152, reading sector 8424 -RS03: try number = 153, reading sector 8505 -RS03: try number = 154, reading sector 8586 -RS03: try number = 155, reading sector 8667 -RS03: try number = 156, reading sector 8748 -RS03: try number = 157, reading sector 8829 -RS03: try number = 158, reading sector 8910 -RS03: try number = 159, reading sector 8991 -RS03: try number = 160, reading sector 9072 -RS03: try number = 161, reading sector 9153 -RS03: try number = 162, reading sector 9234 -RS03: try number = 163, reading sector 9315 -RS03: try number = 164, reading sector 9396 -RS03: try number = 165, reading sector 9477 -RS03: try number = 166, reading sector 9558 -RS03: try number = 167, reading sector 9639 -RS03: try number = 168, reading sector 9720 -RS03: try number = 169, reading sector 9801 -RS03: try number = 170, reading sector 9882 -RS03: try number = 171, reading sector 9963 -RS03: try number = 172, reading sector 10044 -RS03: try number = 173, reading sector 10125 -RS03: try number = 174, reading sector 10206 -RS03: try number = 175, reading sector 10287 -RS03: try number = 176, reading sector 10368 -RS03: try number = 177, reading sector 10449 -RS03: try number = 178, reading sector 10530 -RS03: try number = 179, reading sector 10611 -RS03: try number = 180, reading sector 10692 -RS03: try number = 181, reading sector 10773 -RS03: try number = 182, reading sector 10854 -RS03: try number = 183, reading sector 10935 -RS03: try number = 184, reading sector 11016 -RS03: try number = 185, reading sector 11097 -RS03: try number = 186, reading sector 11178 -RS03: try number = 187, reading sector 11259 -RS03: try number = 188, reading sector 11340 -RS03: try number = 189, reading sector 11421 -RS03: try number = 190, reading sector 11502 -RS03: try number = 191, reading sector 11583 -RS03: try number = 192, reading sector 11664 -RS03: try number = 193, reading sector 11745 -RS03: try number = 194, reading sector 11826 -RS03: try number = 195, reading sector 11907 -RS03: try number = 196, reading sector 11988 -RS03: try number = 197, reading sector 12069 -RS03: try number = 198, reading sector 12150 -RS03: try number = 199, reading sector 12231 -RS03: try number = 200, reading sector 12312 -RS03: try number = 201, reading sector 12393 -RS03: try number = 202, reading sector 12474 -RS03: try number = 203, reading sector 12555 -RS03: try number = 204, reading sector 12636 -RS03: try number = 205, reading sector 12717 -RS03: try number = 206, reading sector 12798 -RS03: try number = 207, reading sector 12879 -RS03: try number = 208, reading sector 12960 -RS03: try number = 209, reading sector 13041 -RS03: try number = 210, reading sector 13122 -RS03: try number = 211, reading sector 13203 -RS03: try number = 212, reading sector 13284 -RS03: try number = 213, reading sector 13365 -RS03: try number = 214, reading sector 13446 -RS03: try number = 215, reading sector 13527 -RS03: try number = 216, reading sector 13608 -RS03: try number = 217, reading sector 13689 -RS03: try number = 218, reading sector 13770 -RS03: try number = 219, reading sector 13851 -RS03: try number = 220, reading sector 13932 -RS03: try number = 221, reading sector 14013 -RS03: try number = 222, reading sector 14094 -RS03: try number = 223, reading sector 14175 -RS03: try number = 224, reading sector 14256 -RS03: try number = 225, reading sector 14337 -RS03: try number = 226, reading sector 14418 -RS03: try number = 227, reading sector 14499 -RS03: try number = 228, reading sector 14580 -RS03: try number = 229, reading sector 14661 -RS03: try number = 230, reading sector 14742 -RS03: try number = 231, reading sector 14823 -RS03: try number = 232, reading sector 14904 -RS03: try number = 233, reading sector 14985 -RS03: try number = 234, reading sector 15066 -RS03: try number = 235, reading sector 15147 -RS03: try number = 236, reading sector 15228 -RS03: try number = 237, reading sector 15309 -RS03: try number = 238, reading sector 15390 -RS03: try number = 239, reading sector 15471 -RS03: try number = 240, reading sector 15552 -RS03: try number = 241, reading sector 15633 -RS03: try number = 242, reading sector 15714 -RS03: try number = 243, reading sector 15795 -RS03: try number = 244, reading sector 15876 -RS03: try number = 245, reading sector 15957 -RS03: try number = 246, reading sector 16038 -RS03: try number = 247, reading sector 16119 -RS03: try number = 248, reading sector 16200 -RS03: try number = 249, reading sector 16281 -RS03: try number = 250, reading sector 16362 -RS03: try number = 251, reading sector 16443 -RS03: try number = 252, reading sector 16524 -RS03: try number = 253, reading sector 16605 -RS03: try number = 254, reading sector 16686 -RS03: try number = 255, reading sector 16767 -RS03: try number = 256, reading sector 16848 -RS03: try number = 257, reading sector 16929 -RS03: try number = 258, reading sector 17010 -RS03: try number = 259, reading sector 17091 -RS03: try number = 260, reading sector 17172 -RS03: try number = 261, reading sector 17253 -RS03: try number = 262, reading sector 17334 -RS03: try number = 263, reading sector 17415 -RS03: try number = 264, reading sector 17496 -RS03: try number = 265, reading sector 17577 -RS03: try number = 266, reading sector 17658 -RS03: try number = 267, reading sector 17739 -RS03: try number = 268, reading sector 17820 -RS03: try number = 269, reading sector 17901 -RS03: try number = 270, reading sector 17982 -RS03: try number = 271, reading sector 18063 -RS03: try number = 272, reading sector 18144 -RS03: try number = 273, reading sector 18225 -RS03: try number = 274, reading sector 18306 -RS03: try number = 275, reading sector 18387 -RS03: try number = 276, reading sector 18468 -RS03: try number = 277, reading sector 18549 -RS03: try number = 278, reading sector 18630 -RS03: try number = 279, reading sector 18711 -RS03: try number = 280, reading sector 18792 -RS03: try number = 281, reading sector 18873 -RS03: try number = 282, reading sector 18954 -RS03: try number = 283, reading sector 19035 -RS03: try number = 284, reading sector 19116 -RS03: try number = 285, reading sector 19197 -RS03: try number = 286, reading sector 19278 -RS03: try number = 287, reading sector 19359 -RS03: try number = 288, reading sector 19440 -RS03: try number = 289, reading sector 19521 -RS03: try number = 290, reading sector 19602 -RS03: try number = 291, reading sector 19683 -RS03: try number = 292, reading sector 19764 -RS03: try number = 293, reading sector 19845 -RS03: try number = 294, reading sector 19926 -RS03: try number = 295, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 296, reading sector 6888 -RS03: try number = 297, reading sector 6970 -RS03: try number = 298, reading sector 7052 -RS03: try number = 299, reading sector 7134 -RS03: try number = 300, reading sector 7216 -RS03: try number = 301, reading sector 7298 -RS03: try number = 302, reading sector 7380 -RS03: try number = 303, reading sector 7462 -RS03: try number = 304, reading sector 7544 -RS03: try number = 305, reading sector 7626 -RS03: try number = 306, reading sector 7708 -RS03: try number = 307, reading sector 7790 -RS03: try number = 308, reading sector 7872 -RS03: try number = 309, reading sector 7954 -RS03: try number = 310, reading sector 8036 -RS03: try number = 311, reading sector 8118 -RS03: try number = 312, reading sector 8200 -RS03: try number = 313, reading sector 8282 -RS03: try number = 314, reading sector 8364 -RS03: try number = 315, reading sector 8446 -RS03: try number = 316, reading sector 8528 -RS03: try number = 317, reading sector 8610 -RS03: try number = 318, reading sector 8692 -RS03: try number = 319, reading sector 8774 -RS03: try number = 320, reading sector 8856 -RS03: try number = 321, reading sector 8938 -RS03: try number = 322, reading sector 9020 -RS03: try number = 323, reading sector 9102 -RS03: try number = 324, reading sector 9184 -RS03: try number = 325, reading sector 9266 -RS03: try number = 326, reading sector 9348 -RS03: try number = 327, reading sector 9430 -RS03: try number = 328, reading sector 9512 -RS03: try number = 329, reading sector 9594 -RS03: try number = 330, reading sector 9676 -RS03: try number = 331, reading sector 9758 -RS03: try number = 332, reading sector 9840 -RS03: try number = 333, reading sector 9922 -RS03: try number = 334, reading sector 10004 -RS03: try number = 335, reading sector 10086 -RS03: try number = 336, reading sector 10168 -RS03: try number = 337, reading sector 10250 -RS03: try number = 338, reading sector 10332 -RS03: try number = 339, reading sector 10414 -RS03: try number = 340, reading sector 10496 -RS03: try number = 341, reading sector 10578 -RS03: try number = 342, reading sector 10660 -RS03: try number = 343, reading sector 10742 -RS03: try number = 344, reading sector 10824 -RS03: try number = 345, reading sector 10906 -RS03: try number = 346, reading sector 10988 -RS03: try number = 347, reading sector 11070 -RS03: try number = 348, reading sector 11152 -RS03: try number = 349, reading sector 11234 -RS03: try number = 350, reading sector 11316 -RS03: try number = 351, reading sector 11398 -RS03: try number = 352, reading sector 11480 -RS03: try number = 353, reading sector 11562 -RS03: try number = 354, reading sector 11644 -RS03: try number = 355, reading sector 11726 -RS03: try number = 356, reading sector 11808 -RS03: try number = 357, reading sector 11890 -RS03: try number = 358, reading sector 11972 -RS03: try number = 359, reading sector 12054 -RS03: try number = 360, reading sector 12136 -RS03: try number = 361, reading sector 12218 -RS03: try number = 362, reading sector 12300 -RS03: try number = 363, reading sector 12382 -RS03: try number = 364, reading sector 12464 -RS03: try number = 365, reading sector 12546 -RS03: try number = 366, reading sector 12628 -RS03: try number = 367, reading sector 12710 -RS03: try number = 368, reading sector 12792 -RS03: try number = 369, reading sector 12874 -RS03: try number = 370, reading sector 12956 -RS03: try number = 371, reading sector 13038 -RS03: try number = 372, reading sector 13120 -RS03: try number = 373, reading sector 13202 -RS03: try number = 374, reading sector 13284 -RS03: try number = 375, reading sector 13366 -RS03: try number = 376, reading sector 13448 -RS03: try number = 377, reading sector 13530 -RS03: try number = 378, reading sector 13612 -RS03: try number = 379, reading sector 13694 -RS03: try number = 380, reading sector 13776 -RS03: try number = 381, reading sector 13858 -RS03: try number = 382, reading sector 13940 -RS03: try number = 383, reading sector 14022 -RS03: try number = 384, reading sector 14104 -RS03: try number = 385, reading sector 14186 -RS03: try number = 386, reading sector 14268 -RS03: try number = 387, reading sector 14350 -RS03: try number = 388, reading sector 14432 -RS03: try number = 389, reading sector 14514 -RS03: try number = 390, reading sector 14596 -RS03: try number = 391, reading sector 14678 -RS03: try number = 392, reading sector 14760 -RS03: try number = 393, reading sector 14842 -RS03: try number = 394, reading sector 14924 -RS03: try number = 395, reading sector 15006 -RS03: try number = 396, reading sector 15088 -RS03: try number = 397, reading sector 15170 -RS03: try number = 398, reading sector 15252 -RS03: try number = 399, reading sector 15334 -RS03: try number = 400, reading sector 15416 -RS03: try number = 401, reading sector 15498 -RS03: try number = 402, reading sector 15580 -RS03: try number = 403, reading sector 15662 -RS03: try number = 404, reading sector 15744 -RS03: try number = 405, reading sector 15826 -RS03: try number = 406, reading sector 15908 -RS03: try number = 407, reading sector 15990 -RS03: try number = 408, reading sector 16072 -RS03: try number = 409, reading sector 16154 -RS03: try number = 410, reading sector 16236 -RS03: try number = 411, reading sector 16318 -RS03: try number = 412, reading sector 16400 -RS03: try number = 413, reading sector 16482 -RS03: try number = 414, reading sector 16564 -RS03: try number = 415, reading sector 16646 -RS03: try number = 416, reading sector 16728 -RS03: try number = 417, reading sector 16810 -RS03: try number = 418, reading sector 16892 -RS03: try number = 419, reading sector 16974 -RS03: try number = 420, reading sector 17056 -RS03: try number = 421, reading sector 17138 -RS03: try number = 422, reading sector 17220 -RS03: try number = 423, reading sector 17302 -RS03: try number = 424, reading sector 17384 -RS03: try number = 425, reading sector 17466 -RS03: try number = 426, reading sector 17548 -RS03: try number = 427, reading sector 17630 -RS03: try number = 428, reading sector 17712 -RS03: try number = 429, reading sector 17794 -RS03: try number = 430, reading sector 17876 -RS03: try number = 431, reading sector 17958 -RS03: try number = 432, reading sector 18040 -RS03: try number = 433, reading sector 18122 -RS03: try number = 434, reading sector 18204 -RS03: try number = 435, reading sector 18286 -RS03: try number = 436, reading sector 18368 -RS03: try number = 437, reading sector 18450 -RS03: try number = 438, reading sector 18532 -RS03: try number = 439, reading sector 18614 -RS03: try number = 440, reading sector 18696 -RS03: try number = 441, reading sector 18778 -RS03: try number = 442, reading sector 18860 -RS03: try number = 443, reading sector 18942 -RS03: try number = 444, reading sector 19024 -RS03: try number = 445, reading sector 19106 -RS03: try number = 446, reading sector 19188 -RS03: try number = 447, reading sector 19270 -RS03: try number = 448, reading sector 19352 -RS03: try number = 449, reading sector 19434 -RS03: try number = 450, reading sector 19516 -RS03: try number = 451, reading sector 19598 -RS03: try number = 452, reading sector 19680 -RS03: try number = 453, reading sector 19762 -RS03: try number = 454, reading sector 19844 -RS03: try number = 455, reading sector 19926 -RS03: try number = 456, reading sector 20008 -RS03: try number = 457, reading sector 20090 -RS03: try number = 458, reading sector 20172 -RS03: try number = 459, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 460, reading sector 6972 -RS03: try number = 461, reading sector 7055 -RS03: try number = 462, reading sector 7138 -RS03: try number = 463, reading sector 7221 -RS03: try number = 464, reading sector 7304 -RS03: try number = 465, reading sector 7387 -RS03: try number = 466, reading sector 7470 -RS03: try number = 467, reading sector 7553 -RS03: try number = 468, reading sector 7636 -RS03: try number = 469, reading sector 7719 -RS03: try number = 470, reading sector 7802 -RS03: try number = 471, reading sector 7885 -RS03: try number = 472, reading sector 7968 -RS03: try number = 473, reading sector 8051 -RS03: try number = 474, reading sector 8134 -RS03: try number = 475, reading sector 8217 -RS03: try number = 476, reading sector 8300 -RS03: try number = 477, reading sector 8383 -RS03: try number = 478, reading sector 8466 -RS03: try number = 479, reading sector 8549 -RS03: try number = 480, reading sector 8632 -RS03: try number = 481, reading sector 8715 -RS03: try number = 482, reading sector 8798 -RS03: try number = 483, reading sector 8881 -RS03: try number = 484, reading sector 8964 -RS03: try number = 485, reading sector 9047 -RS03: try number = 486, reading sector 9130 -RS03: try number = 487, reading sector 9213 -RS03: try number = 488, reading sector 9296 -RS03: try number = 489, reading sector 9379 -RS03: try number = 490, reading sector 9462 -RS03: try number = 491, reading sector 9545 -RS03: try number = 492, reading sector 9628 -RS03: try number = 493, reading sector 9711 -RS03: try number = 494, reading sector 9794 -RS03: try number = 495, reading sector 9877 -RS03: try number = 496, reading sector 9960 -RS03: try number = 497, reading sector 10043 -RS03: try number = 498, reading sector 10126 -RS03: try number = 499, reading sector 10209 -RS03: try number = 500, reading sector 10292 -RS03: try number = 501, reading sector 10375 -RS03: try number = 502, reading sector 10458 -RS03: try number = 503, reading sector 10541 -RS03: try number = 504, reading sector 10624 -RS03: try number = 505, reading sector 10707 -RS03: try number = 506, reading sector 10790 -RS03: try number = 507, reading sector 10873 -RS03: try number = 508, reading sector 10956 -RS03: try number = 509, reading sector 11039 -RS03: try number = 510, reading sector 11122 -RS03: try number = 511, reading sector 11205 -RS03: try number = 512, reading sector 11288 -RS03: try number = 513, reading sector 11371 -RS03: try number = 514, reading sector 11454 -RS03: try number = 515, reading sector 11537 -RS03: try number = 516, reading sector 11620 -RS03: try number = 517, reading sector 11703 -RS03: try number = 518, reading sector 11786 -RS03: try number = 519, reading sector 11869 -RS03: try number = 520, reading sector 11952 -RS03: try number = 521, reading sector 12035 -RS03: try number = 522, reading sector 12118 -RS03: try number = 523, reading sector 12201 -RS03: try number = 524, reading sector 12284 -RS03: try number = 525, reading sector 12367 -RS03: try number = 526, reading sector 12450 -RS03: try number = 527, reading sector 12533 -RS03: try number = 528, reading sector 12616 -RS03: try number = 529, reading sector 12699 -RS03: try number = 530, reading sector 12782 -RS03: try number = 531, reading sector 12865 -RS03: try number = 532, reading sector 12948 -RS03: try number = 533, reading sector 13031 -RS03: try number = 534, reading sector 13114 -RS03: try number = 535, reading sector 13197 -RS03: try number = 536, reading sector 13280 -RS03: try number = 537, reading sector 13363 -RS03: try number = 538, reading sector 13446 -RS03: try number = 539, reading sector 13529 -RS03: try number = 540, reading sector 13612 -RS03: try number = 541, reading sector 13695 -RS03: try number = 542, reading sector 13778 -RS03: try number = 543, reading sector 13861 -RS03: try number = 544, reading sector 13944 -RS03: try number = 545, reading sector 14027 -RS03: try number = 546, reading sector 14110 -RS03: try number = 547, reading sector 14193 -RS03: try number = 548, reading sector 14276 -RS03: try number = 549, reading sector 14359 -RS03: try number = 550, reading sector 14442 -RS03: try number = 551, reading sector 14525 -RS03: try number = 552, reading sector 14608 -RS03: try number = 553, reading sector 14691 -RS03: try number = 554, reading sector 14774 -RS03: try number = 555, reading sector 14857 -RS03: try number = 556, reading sector 14940 -RS03: try number = 557, reading sector 15023 -RS03: try number = 558, reading sector 15106 -RS03: try number = 559, reading sector 15189 -RS03: try number = 560, reading sector 15272 -RS03: try number = 561, reading sector 15355 -RS03: try number = 562, reading sector 15438 -RS03: try number = 563, reading sector 15521 -RS03: try number = 564, reading sector 15604 -RS03: try number = 565, reading sector 15687 -RS03: try number = 566, reading sector 15770 -RS03: try number = 567, reading sector 15853 -RS03: try number = 568, reading sector 15936 -RS03: try number = 569, reading sector 16019 -RS03: try number = 570, reading sector 16102 -RS03: try number = 571, reading sector 16185 -RS03: try number = 572, reading sector 16268 -RS03: try number = 573, reading sector 16351 -RS03: try number = 574, reading sector 16434 -RS03: try number = 575, reading sector 16517 -RS03: try number = 576, reading sector 16600 -RS03: try number = 577, reading sector 16683 -RS03: try number = 578, reading sector 16766 -RS03: try number = 579, reading sector 16849 -RS03: try number = 580, reading sector 16932 -RS03: try number = 581, reading sector 17015 -RS03: try number = 582, reading sector 17098 -RS03: try number = 583, reading sector 17181 -RS03: try number = 584, reading sector 17264 -RS03: try number = 585, reading sector 17347 -RS03: try number = 586, reading sector 17430 -RS03: try number = 587, reading sector 17513 -RS03: try number = 588, reading sector 17596 -RS03: try number = 589, reading sector 17679 -RS03: try number = 590, reading sector 17762 -RS03: try number = 591, reading sector 17845 -RS03: try number = 592, reading sector 17928 -RS03: try number = 593, reading sector 18011 -RS03: try number = 594, reading sector 18094 -RS03: try number = 595, reading sector 18177 -RS03: try number = 596, reading sector 18260 -RS03: try number = 597, reading sector 18343 -RS03: try number = 598, reading sector 18426 -RS03: try number = 599, reading sector 18509 -RS03: try number = 600, reading sector 18592 -RS03: try number = 601, reading sector 18675 -RS03: try number = 602, reading sector 18758 -RS03: try number = 603, reading sector 18841 -RS03: try number = 604, reading sector 18924 -RS03: try number = 605, reading sector 19007 -RS03: try number = 606, reading sector 19090 -RS03: try number = 607, reading sector 19173 -RS03: try number = 608, reading sector 19256 -RS03: try number = 609, reading sector 19339 -RS03: try number = 610, reading sector 19422 -RS03: try number = 611, reading sector 19505 -RS03: try number = 612, reading sector 19588 -RS03: try number = 613, reading sector 19671 -RS03: try number = 614, reading sector 19754 -RS03: try number = 615, reading sector 19837 -RS03: try number = 616, reading sector 19920 -RS03: try number = 617, reading sector 20003 -RS03: try number = 618, reading sector 20086 -RS03: try number = 619, reading sector 20169 -RS03: try number = 620, reading sector 20252 -RS03: try number = 621, reading sector 20335 -RS03: try number = 622, reading sector 20418 -RS03: try number = 623, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03i_ecc_recreate_after_read_rs03f b/regtest/database/RS03i_ecc_recreate_after_read_rs03f index 967a054b..969faa0a 100644 --- a/regtest/database/RS03i_ecc_recreate_after_read_rs03f +++ b/regtest/database/RS03i_ecc_recreate_after_read_rs03f @@ -455,511 +455,6 @@ RS03: try number = 129, reading sector 20776 RS03: try number = 130, reading sector 20874 RS03: try number = 131, reading sector 20972 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 132, reading sector 6804 -RS03: try number = 133, reading sector 6885 -RS03: try number = 134, reading sector 6966 -RS03: try number = 135, reading sector 7047 -RS03: try number = 136, reading sector 7128 -RS03: try number = 137, reading sector 7209 -RS03: try number = 138, reading sector 7290 -RS03: try number = 139, reading sector 7371 -RS03: try number = 140, reading sector 7452 -RS03: try number = 141, reading sector 7533 -RS03: try number = 142, reading sector 7614 -RS03: try number = 143, reading sector 7695 -RS03: try number = 144, reading sector 7776 -RS03: try number = 145, reading sector 7857 -RS03: try number = 146, reading sector 7938 -RS03: try number = 147, reading sector 8019 -RS03: try number = 148, reading sector 8100 -RS03: try number = 149, reading sector 8181 -RS03: try number = 150, reading sector 8262 -RS03: try number = 151, reading sector 8343 -RS03: try number = 152, reading sector 8424 -RS03: try number = 153, reading sector 8505 -RS03: try number = 154, reading sector 8586 -RS03: try number = 155, reading sector 8667 -RS03: try number = 156, reading sector 8748 -RS03: try number = 157, reading sector 8829 -RS03: try number = 158, reading sector 8910 -RS03: try number = 159, reading sector 8991 -RS03: try number = 160, reading sector 9072 -RS03: try number = 161, reading sector 9153 -RS03: try number = 162, reading sector 9234 -RS03: try number = 163, reading sector 9315 -RS03: try number = 164, reading sector 9396 -RS03: try number = 165, reading sector 9477 -RS03: try number = 166, reading sector 9558 -RS03: try number = 167, reading sector 9639 -RS03: try number = 168, reading sector 9720 -RS03: try number = 169, reading sector 9801 -RS03: try number = 170, reading sector 9882 -RS03: try number = 171, reading sector 9963 -RS03: try number = 172, reading sector 10044 -RS03: try number = 173, reading sector 10125 -RS03: try number = 174, reading sector 10206 -RS03: try number = 175, reading sector 10287 -RS03: try number = 176, reading sector 10368 -RS03: try number = 177, reading sector 10449 -RS03: try number = 178, reading sector 10530 -RS03: try number = 179, reading sector 10611 -RS03: try number = 180, reading sector 10692 -RS03: try number = 181, reading sector 10773 -RS03: try number = 182, reading sector 10854 -RS03: try number = 183, reading sector 10935 -RS03: try number = 184, reading sector 11016 -RS03: try number = 185, reading sector 11097 -RS03: try number = 186, reading sector 11178 -RS03: try number = 187, reading sector 11259 -RS03: try number = 188, reading sector 11340 -RS03: try number = 189, reading sector 11421 -RS03: try number = 190, reading sector 11502 -RS03: try number = 191, reading sector 11583 -RS03: try number = 192, reading sector 11664 -RS03: try number = 193, reading sector 11745 -RS03: try number = 194, reading sector 11826 -RS03: try number = 195, reading sector 11907 -RS03: try number = 196, reading sector 11988 -RS03: try number = 197, reading sector 12069 -RS03: try number = 198, reading sector 12150 -RS03: try number = 199, reading sector 12231 -RS03: try number = 200, reading sector 12312 -RS03: try number = 201, reading sector 12393 -RS03: try number = 202, reading sector 12474 -RS03: try number = 203, reading sector 12555 -RS03: try number = 204, reading sector 12636 -RS03: try number = 205, reading sector 12717 -RS03: try number = 206, reading sector 12798 -RS03: try number = 207, reading sector 12879 -RS03: try number = 208, reading sector 12960 -RS03: try number = 209, reading sector 13041 -RS03: try number = 210, reading sector 13122 -RS03: try number = 211, reading sector 13203 -RS03: try number = 212, reading sector 13284 -RS03: try number = 213, reading sector 13365 -RS03: try number = 214, reading sector 13446 -RS03: try number = 215, reading sector 13527 -RS03: try number = 216, reading sector 13608 -RS03: try number = 217, reading sector 13689 -RS03: try number = 218, reading sector 13770 -RS03: try number = 219, reading sector 13851 -RS03: try number = 220, reading sector 13932 -RS03: try number = 221, reading sector 14013 -RS03: try number = 222, reading sector 14094 -RS03: try number = 223, reading sector 14175 -RS03: try number = 224, reading sector 14256 -RS03: try number = 225, reading sector 14337 -RS03: try number = 226, reading sector 14418 -RS03: try number = 227, reading sector 14499 -RS03: try number = 228, reading sector 14580 -RS03: try number = 229, reading sector 14661 -RS03: try number = 230, reading sector 14742 -RS03: try number = 231, reading sector 14823 -RS03: try number = 232, reading sector 14904 -RS03: try number = 233, reading sector 14985 -RS03: try number = 234, reading sector 15066 -RS03: try number = 235, reading sector 15147 -RS03: try number = 236, reading sector 15228 -RS03: try number = 237, reading sector 15309 -RS03: try number = 238, reading sector 15390 -RS03: try number = 239, reading sector 15471 -RS03: try number = 240, reading sector 15552 -RS03: try number = 241, reading sector 15633 -RS03: try number = 242, reading sector 15714 -RS03: try number = 243, reading sector 15795 -RS03: try number = 244, reading sector 15876 -RS03: try number = 245, reading sector 15957 -RS03: try number = 246, reading sector 16038 -RS03: try number = 247, reading sector 16119 -RS03: try number = 248, reading sector 16200 -RS03: try number = 249, reading sector 16281 -RS03: try number = 250, reading sector 16362 -RS03: try number = 251, reading sector 16443 -RS03: try number = 252, reading sector 16524 -RS03: try number = 253, reading sector 16605 -RS03: try number = 254, reading sector 16686 -RS03: try number = 255, reading sector 16767 -RS03: try number = 256, reading sector 16848 -RS03: try number = 257, reading sector 16929 -RS03: try number = 258, reading sector 17010 -RS03: try number = 259, reading sector 17091 -RS03: try number = 260, reading sector 17172 -RS03: try number = 261, reading sector 17253 -RS03: try number = 262, reading sector 17334 -RS03: try number = 263, reading sector 17415 -RS03: try number = 264, reading sector 17496 -RS03: try number = 265, reading sector 17577 -RS03: try number = 266, reading sector 17658 -RS03: try number = 267, reading sector 17739 -RS03: try number = 268, reading sector 17820 -RS03: try number = 269, reading sector 17901 -RS03: try number = 270, reading sector 17982 -RS03: try number = 271, reading sector 18063 -RS03: try number = 272, reading sector 18144 -RS03: try number = 273, reading sector 18225 -RS03: try number = 274, reading sector 18306 -RS03: try number = 275, reading sector 18387 -RS03: try number = 276, reading sector 18468 -RS03: try number = 277, reading sector 18549 -RS03: try number = 278, reading sector 18630 -RS03: try number = 279, reading sector 18711 -RS03: try number = 280, reading sector 18792 -RS03: try number = 281, reading sector 18873 -RS03: try number = 282, reading sector 18954 -RS03: try number = 283, reading sector 19035 -RS03: try number = 284, reading sector 19116 -RS03: try number = 285, reading sector 19197 -RS03: try number = 286, reading sector 19278 -RS03: try number = 287, reading sector 19359 -RS03: try number = 288, reading sector 19440 -RS03: try number = 289, reading sector 19521 -RS03: try number = 290, reading sector 19602 -RS03: try number = 291, reading sector 19683 -RS03: try number = 292, reading sector 19764 -RS03: try number = 293, reading sector 19845 -RS03: try number = 294, reading sector 19926 -RS03: try number = 295, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 296, reading sector 6888 -RS03: try number = 297, reading sector 6970 -RS03: try number = 298, reading sector 7052 -RS03: try number = 299, reading sector 7134 -RS03: try number = 300, reading sector 7216 -RS03: try number = 301, reading sector 7298 -RS03: try number = 302, reading sector 7380 -RS03: try number = 303, reading sector 7462 -RS03: try number = 304, reading sector 7544 -RS03: try number = 305, reading sector 7626 -RS03: try number = 306, reading sector 7708 -RS03: try number = 307, reading sector 7790 -RS03: try number = 308, reading sector 7872 -RS03: try number = 309, reading sector 7954 -RS03: try number = 310, reading sector 8036 -RS03: try number = 311, reading sector 8118 -RS03: try number = 312, reading sector 8200 -RS03: try number = 313, reading sector 8282 -RS03: try number = 314, reading sector 8364 -RS03: try number = 315, reading sector 8446 -RS03: try number = 316, reading sector 8528 -RS03: try number = 317, reading sector 8610 -RS03: try number = 318, reading sector 8692 -RS03: try number = 319, reading sector 8774 -RS03: try number = 320, reading sector 8856 -RS03: try number = 321, reading sector 8938 -RS03: try number = 322, reading sector 9020 -RS03: try number = 323, reading sector 9102 -RS03: try number = 324, reading sector 9184 -RS03: try number = 325, reading sector 9266 -RS03: try number = 326, reading sector 9348 -RS03: try number = 327, reading sector 9430 -RS03: try number = 328, reading sector 9512 -RS03: try number = 329, reading sector 9594 -RS03: try number = 330, reading sector 9676 -RS03: try number = 331, reading sector 9758 -RS03: try number = 332, reading sector 9840 -RS03: try number = 333, reading sector 9922 -RS03: try number = 334, reading sector 10004 -RS03: try number = 335, reading sector 10086 -RS03: try number = 336, reading sector 10168 -RS03: try number = 337, reading sector 10250 -RS03: try number = 338, reading sector 10332 -RS03: try number = 339, reading sector 10414 -RS03: try number = 340, reading sector 10496 -RS03: try number = 341, reading sector 10578 -RS03: try number = 342, reading sector 10660 -RS03: try number = 343, reading sector 10742 -RS03: try number = 344, reading sector 10824 -RS03: try number = 345, reading sector 10906 -RS03: try number = 346, reading sector 10988 -RS03: try number = 347, reading sector 11070 -RS03: try number = 348, reading sector 11152 -RS03: try number = 349, reading sector 11234 -RS03: try number = 350, reading sector 11316 -RS03: try number = 351, reading sector 11398 -RS03: try number = 352, reading sector 11480 -RS03: try number = 353, reading sector 11562 -RS03: try number = 354, reading sector 11644 -RS03: try number = 355, reading sector 11726 -RS03: try number = 356, reading sector 11808 -RS03: try number = 357, reading sector 11890 -RS03: try number = 358, reading sector 11972 -RS03: try number = 359, reading sector 12054 -RS03: try number = 360, reading sector 12136 -RS03: try number = 361, reading sector 12218 -RS03: try number = 362, reading sector 12300 -RS03: try number = 363, reading sector 12382 -RS03: try number = 364, reading sector 12464 -RS03: try number = 365, reading sector 12546 -RS03: try number = 366, reading sector 12628 -RS03: try number = 367, reading sector 12710 -RS03: try number = 368, reading sector 12792 -RS03: try number = 369, reading sector 12874 -RS03: try number = 370, reading sector 12956 -RS03: try number = 371, reading sector 13038 -RS03: try number = 372, reading sector 13120 -RS03: try number = 373, reading sector 13202 -RS03: try number = 374, reading sector 13284 -RS03: try number = 375, reading sector 13366 -RS03: try number = 376, reading sector 13448 -RS03: try number = 377, reading sector 13530 -RS03: try number = 378, reading sector 13612 -RS03: try number = 379, reading sector 13694 -RS03: try number = 380, reading sector 13776 -RS03: try number = 381, reading sector 13858 -RS03: try number = 382, reading sector 13940 -RS03: try number = 383, reading sector 14022 -RS03: try number = 384, reading sector 14104 -RS03: try number = 385, reading sector 14186 -RS03: try number = 386, reading sector 14268 -RS03: try number = 387, reading sector 14350 -RS03: try number = 388, reading sector 14432 -RS03: try number = 389, reading sector 14514 -RS03: try number = 390, reading sector 14596 -RS03: try number = 391, reading sector 14678 -RS03: try number = 392, reading sector 14760 -RS03: try number = 393, reading sector 14842 -RS03: try number = 394, reading sector 14924 -RS03: try number = 395, reading sector 15006 -RS03: try number = 396, reading sector 15088 -RS03: try number = 397, reading sector 15170 -RS03: try number = 398, reading sector 15252 -RS03: try number = 399, reading sector 15334 -RS03: try number = 400, reading sector 15416 -RS03: try number = 401, reading sector 15498 -RS03: try number = 402, reading sector 15580 -RS03: try number = 403, reading sector 15662 -RS03: try number = 404, reading sector 15744 -RS03: try number = 405, reading sector 15826 -RS03: try number = 406, reading sector 15908 -RS03: try number = 407, reading sector 15990 -RS03: try number = 408, reading sector 16072 -RS03: try number = 409, reading sector 16154 -RS03: try number = 410, reading sector 16236 -RS03: try number = 411, reading sector 16318 -RS03: try number = 412, reading sector 16400 -RS03: try number = 413, reading sector 16482 -RS03: try number = 414, reading sector 16564 -RS03: try number = 415, reading sector 16646 -RS03: try number = 416, reading sector 16728 -RS03: try number = 417, reading sector 16810 -RS03: try number = 418, reading sector 16892 -RS03: try number = 419, reading sector 16974 -RS03: try number = 420, reading sector 17056 -RS03: try number = 421, reading sector 17138 -RS03: try number = 422, reading sector 17220 -RS03: try number = 423, reading sector 17302 -RS03: try number = 424, reading sector 17384 -RS03: try number = 425, reading sector 17466 -RS03: try number = 426, reading sector 17548 -RS03: try number = 427, reading sector 17630 -RS03: try number = 428, reading sector 17712 -RS03: try number = 429, reading sector 17794 -RS03: try number = 430, reading sector 17876 -RS03: try number = 431, reading sector 17958 -RS03: try number = 432, reading sector 18040 -RS03: try number = 433, reading sector 18122 -RS03: try number = 434, reading sector 18204 -RS03: try number = 435, reading sector 18286 -RS03: try number = 436, reading sector 18368 -RS03: try number = 437, reading sector 18450 -RS03: try number = 438, reading sector 18532 -RS03: try number = 439, reading sector 18614 -RS03: try number = 440, reading sector 18696 -RS03: try number = 441, reading sector 18778 -RS03: try number = 442, reading sector 18860 -RS03: try number = 443, reading sector 18942 -RS03: try number = 444, reading sector 19024 -RS03: try number = 445, reading sector 19106 -RS03: try number = 446, reading sector 19188 -RS03: try number = 447, reading sector 19270 -RS03: try number = 448, reading sector 19352 -RS03: try number = 449, reading sector 19434 -RS03: try number = 450, reading sector 19516 -RS03: try number = 451, reading sector 19598 -RS03: try number = 452, reading sector 19680 -RS03: try number = 453, reading sector 19762 -RS03: try number = 454, reading sector 19844 -RS03: try number = 455, reading sector 19926 -RS03: try number = 456, reading sector 20008 -RS03: try number = 457, reading sector 20090 -RS03: try number = 458, reading sector 20172 -RS03: try number = 459, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 460, reading sector 6972 -RS03: try number = 461, reading sector 7055 -RS03: try number = 462, reading sector 7138 -RS03: try number = 463, reading sector 7221 -RS03: try number = 464, reading sector 7304 -RS03: try number = 465, reading sector 7387 -RS03: try number = 466, reading sector 7470 -RS03: try number = 467, reading sector 7553 -RS03: try number = 468, reading sector 7636 -RS03: try number = 469, reading sector 7719 -RS03: try number = 470, reading sector 7802 -RS03: try number = 471, reading sector 7885 -RS03: try number = 472, reading sector 7968 -RS03: try number = 473, reading sector 8051 -RS03: try number = 474, reading sector 8134 -RS03: try number = 475, reading sector 8217 -RS03: try number = 476, reading sector 8300 -RS03: try number = 477, reading sector 8383 -RS03: try number = 478, reading sector 8466 -RS03: try number = 479, reading sector 8549 -RS03: try number = 480, reading sector 8632 -RS03: try number = 481, reading sector 8715 -RS03: try number = 482, reading sector 8798 -RS03: try number = 483, reading sector 8881 -RS03: try number = 484, reading sector 8964 -RS03: try number = 485, reading sector 9047 -RS03: try number = 486, reading sector 9130 -RS03: try number = 487, reading sector 9213 -RS03: try number = 488, reading sector 9296 -RS03: try number = 489, reading sector 9379 -RS03: try number = 490, reading sector 9462 -RS03: try number = 491, reading sector 9545 -RS03: try number = 492, reading sector 9628 -RS03: try number = 493, reading sector 9711 -RS03: try number = 494, reading sector 9794 -RS03: try number = 495, reading sector 9877 -RS03: try number = 496, reading sector 9960 -RS03: try number = 497, reading sector 10043 -RS03: try number = 498, reading sector 10126 -RS03: try number = 499, reading sector 10209 -RS03: try number = 500, reading sector 10292 -RS03: try number = 501, reading sector 10375 -RS03: try number = 502, reading sector 10458 -RS03: try number = 503, reading sector 10541 -RS03: try number = 504, reading sector 10624 -RS03: try number = 505, reading sector 10707 -RS03: try number = 506, reading sector 10790 -RS03: try number = 507, reading sector 10873 -RS03: try number = 508, reading sector 10956 -RS03: try number = 509, reading sector 11039 -RS03: try number = 510, reading sector 11122 -RS03: try number = 511, reading sector 11205 -RS03: try number = 512, reading sector 11288 -RS03: try number = 513, reading sector 11371 -RS03: try number = 514, reading sector 11454 -RS03: try number = 515, reading sector 11537 -RS03: try number = 516, reading sector 11620 -RS03: try number = 517, reading sector 11703 -RS03: try number = 518, reading sector 11786 -RS03: try number = 519, reading sector 11869 -RS03: try number = 520, reading sector 11952 -RS03: try number = 521, reading sector 12035 -RS03: try number = 522, reading sector 12118 -RS03: try number = 523, reading sector 12201 -RS03: try number = 524, reading sector 12284 -RS03: try number = 525, reading sector 12367 -RS03: try number = 526, reading sector 12450 -RS03: try number = 527, reading sector 12533 -RS03: try number = 528, reading sector 12616 -RS03: try number = 529, reading sector 12699 -RS03: try number = 530, reading sector 12782 -RS03: try number = 531, reading sector 12865 -RS03: try number = 532, reading sector 12948 -RS03: try number = 533, reading sector 13031 -RS03: try number = 534, reading sector 13114 -RS03: try number = 535, reading sector 13197 -RS03: try number = 536, reading sector 13280 -RS03: try number = 537, reading sector 13363 -RS03: try number = 538, reading sector 13446 -RS03: try number = 539, reading sector 13529 -RS03: try number = 540, reading sector 13612 -RS03: try number = 541, reading sector 13695 -RS03: try number = 542, reading sector 13778 -RS03: try number = 543, reading sector 13861 -RS03: try number = 544, reading sector 13944 -RS03: try number = 545, reading sector 14027 -RS03: try number = 546, reading sector 14110 -RS03: try number = 547, reading sector 14193 -RS03: try number = 548, reading sector 14276 -RS03: try number = 549, reading sector 14359 -RS03: try number = 550, reading sector 14442 -RS03: try number = 551, reading sector 14525 -RS03: try number = 552, reading sector 14608 -RS03: try number = 553, reading sector 14691 -RS03: try number = 554, reading sector 14774 -RS03: try number = 555, reading sector 14857 -RS03: try number = 556, reading sector 14940 -RS03: try number = 557, reading sector 15023 -RS03: try number = 558, reading sector 15106 -RS03: try number = 559, reading sector 15189 -RS03: try number = 560, reading sector 15272 -RS03: try number = 561, reading sector 15355 -RS03: try number = 562, reading sector 15438 -RS03: try number = 563, reading sector 15521 -RS03: try number = 564, reading sector 15604 -RS03: try number = 565, reading sector 15687 -RS03: try number = 566, reading sector 15770 -RS03: try number = 567, reading sector 15853 -RS03: try number = 568, reading sector 15936 -RS03: try number = 569, reading sector 16019 -RS03: try number = 570, reading sector 16102 -RS03: try number = 571, reading sector 16185 -RS03: try number = 572, reading sector 16268 -RS03: try number = 573, reading sector 16351 -RS03: try number = 574, reading sector 16434 -RS03: try number = 575, reading sector 16517 -RS03: try number = 576, reading sector 16600 -RS03: try number = 577, reading sector 16683 -RS03: try number = 578, reading sector 16766 -RS03: try number = 579, reading sector 16849 -RS03: try number = 580, reading sector 16932 -RS03: try number = 581, reading sector 17015 -RS03: try number = 582, reading sector 17098 -RS03: try number = 583, reading sector 17181 -RS03: try number = 584, reading sector 17264 -RS03: try number = 585, reading sector 17347 -RS03: try number = 586, reading sector 17430 -RS03: try number = 587, reading sector 17513 -RS03: try number = 588, reading sector 17596 -RS03: try number = 589, reading sector 17679 -RS03: try number = 590, reading sector 17762 -RS03: try number = 591, reading sector 17845 -RS03: try number = 592, reading sector 17928 -RS03: try number = 593, reading sector 18011 -RS03: try number = 594, reading sector 18094 -RS03: try number = 595, reading sector 18177 -RS03: try number = 596, reading sector 18260 -RS03: try number = 597, reading sector 18343 -RS03: try number = 598, reading sector 18426 -RS03: try number = 599, reading sector 18509 -RS03: try number = 600, reading sector 18592 -RS03: try number = 601, reading sector 18675 -RS03: try number = 602, reading sector 18758 -RS03: try number = 603, reading sector 18841 -RS03: try number = 604, reading sector 18924 -RS03: try number = 605, reading sector 19007 -RS03: try number = 606, reading sector 19090 -RS03: try number = 607, reading sector 19173 -RS03: try number = 608, reading sector 19256 -RS03: try number = 609, reading sector 19339 -RS03: try number = 610, reading sector 19422 -RS03: try number = 611, reading sector 19505 -RS03: try number = 612, reading sector 19588 -RS03: try number = 613, reading sector 19671 -RS03: try number = 614, reading sector 19754 -RS03: try number = 615, reading sector 19837 -RS03: try number = 616, reading sector 19920 -RS03: try number = 617, reading sector 20003 -RS03: try number = 618, reading sector 20086 -RS03: try number = 619, reading sector 20169 -RS03: try number = 620, reading sector 20252 -RS03: try number = 621, reading sector 20335 -RS03: try number = 622, reading sector 20418 -RS03: try number = 623, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03i_missing_header_no_crcsec b/regtest/database/RS03i_missing_header_no_crcsec index d91fb6f3..d14925c5 100644 --- a/regtest/database/RS03i_missing_header_no_crcsec +++ b/regtest/database/RS03i_missing_header_no_crcsec @@ -4530,4573 +4530,6 @@ RS03: try number = 1571, reading sector 236710 RS03: try number = 1572, reading sector 236711 -> 1 untested layers remaining -- layer size 1409 exhausted; 1 layers remain untested -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 1408 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1573, reading sector 118272 -RS03: try number = 1574, reading sector 119680 -RS03: try number = 1575, reading sector 121088 -RS03: try number = 1576, reading sector 122496 -RS03: try number = 1577, reading sector 123904 -RS03: try number = 1578, reading sector 125312 -RS03: try number = 1579, reading sector 126720 -RS03: try number = 1580, reading sector 128128 -RS03: try number = 1581, reading sector 129536 -RS03: try number = 1582, reading sector 130944 -RS03: try number = 1583, reading sector 132352 -RS03: try number = 1584, reading sector 133760 -RS03: try number = 1585, reading sector 135168 -RS03: try number = 1586, reading sector 136576 -RS03: try number = 1587, reading sector 137984 -RS03: try number = 1588, reading sector 139392 -RS03: try number = 1589, reading sector 140800 -RS03: try number = 1590, reading sector 142208 -RS03: try number = 1591, reading sector 143616 -RS03: try number = 1592, reading sector 145024 -RS03: try number = 1593, reading sector 146432 -RS03: try number = 1594, reading sector 147840 -RS03: try number = 1595, reading sector 149248 -RS03: try number = 1596, reading sector 150656 -RS03: try number = 1597, reading sector 152064 -RS03: try number = 1598, reading sector 153472 -RS03: try number = 1599, reading sector 154880 -RS03: try number = 1600, reading sector 156288 -RS03: try number = 1601, reading sector 157696 -RS03: try number = 1602, reading sector 159104 -RS03: try number = 1603, reading sector 160512 -RS03: try number = 1604, reading sector 161920 -RS03: try number = 1605, reading sector 163328 -RS03: try number = 1606, reading sector 164736 -RS03: try number = 1607, reading sector 166144 -RS03: try number = 1608, reading sector 167552 -RS03: try number = 1609, reading sector 168960 -RS03: try number = 1610, reading sector 170368 -RS03: try number = 1611, reading sector 171776 -RS03: try number = 1612, reading sector 173184 -RS03: try number = 1613, reading sector 174592 -RS03: try number = 1614, reading sector 176000 -RS03: try number = 1615, reading sector 177408 -RS03: try number = 1616, reading sector 178816 -RS03: try number = 1617, reading sector 180224 -RS03: try number = 1618, reading sector 181632 -RS03: try number = 1619, reading sector 183040 -RS03: try number = 1620, reading sector 184448 -RS03: try number = 1621, reading sector 185856 -RS03: try number = 1622, reading sector 187264 -RS03: try number = 1623, reading sector 188672 -RS03: try number = 1624, reading sector 190080 -RS03: try number = 1625, reading sector 191488 -RS03: try number = 1626, reading sector 192896 -RS03: try number = 1627, reading sector 194304 -RS03: try number = 1628, reading sector 195712 -RS03: try number = 1629, reading sector 197120 -RS03: try number = 1630, reading sector 198528 -RS03: try number = 1631, reading sector 199936 -RS03: try number = 1632, reading sector 201344 -RS03: try number = 1633, reading sector 202752 -RS03: try number = 1634, reading sector 204160 -RS03: try number = 1635, reading sector 205568 -RS03: try number = 1636, reading sector 206976 -RS03: try number = 1637, reading sector 208384 -RS03: try number = 1638, reading sector 209792 -RS03: try number = 1639, reading sector 211200 -RS03: try number = 1640, reading sector 212608 -RS03: try number = 1641, reading sector 214016 -RS03: try number = 1642, reading sector 215424 -RS03: try number = 1643, reading sector 216832 -RS03: try number = 1644, reading sector 218240 -RS03: try number = 1645, reading sector 219648 -RS03: try number = 1646, reading sector 221056 -RS03: try number = 1647, reading sector 222464 -RS03: try number = 1648, reading sector 223872 -RS03: try number = 1649, reading sector 225280 -RS03: try number = 1650, reading sector 226688 -RS03: try number = 1651, reading sector 228096 -RS03: try number = 1652, reading sector 229504 -RS03: try number = 1653, reading sector 230912 -RS03: try number = 1654, reading sector 232320 -RS03: try number = 1655, reading sector 233728 -RS03: try number = 1656, reading sector 235136 -RS03: try number = 1657, reading sector 236544 -RS03: try number = 1658, reading sector 237952 -RS03: try number = 1659, reading sector 239360 -RS03: try number = 1660, reading sector 240768 -RS03: try number = 1661, reading sector 242176 -RS03: try number = 1662, reading sector 243584 -RS03: try number = 1663, reading sector 244992 -RS03: try number = 1664, reading sector 246400 -RS03: try number = 1665, reading sector 247808 -RS03: try number = 1666, reading sector 249216 -RS03: try number = 1667, reading sector 250624 -RS03: try number = 1668, reading sector 252032 -RS03: try number = 1669, reading sector 253440 -RS03: try number = 1670, reading sector 254848 -RS03: try number = 1671, reading sector 256256 -RS03: try number = 1672, reading sector 257664 -RS03: try number = 1673, reading sector 259072 -RS03: try number = 1674, reading sector 260480 -RS03: try number = 1675, reading sector 261888 -RS03: try number = 1676, reading sector 263296 -RS03: try number = 1677, reading sector 264704 -RS03: try number = 1678, reading sector 266112 -RS03: try number = 1679, reading sector 267520 -RS03: try number = 1680, reading sector 268928 -RS03: try number = 1681, reading sector 270336 -RS03: try number = 1682, reading sector 271744 -RS03: try number = 1683, reading sector 273152 -RS03: try number = 1684, reading sector 274560 -RS03: try number = 1685, reading sector 275968 -RS03: try number = 1686, reading sector 277376 -RS03: try number = 1687, reading sector 278784 -RS03: try number = 1688, reading sector 280192 -RS03: try number = 1689, reading sector 281600 -RS03: try number = 1690, reading sector 283008 -RS03: try number = 1691, reading sector 284416 -RS03: try number = 1692, reading sector 285824 -RS03: try number = 1693, reading sector 287232 -RS03: try number = 1694, reading sector 288640 -RS03: try number = 1695, reading sector 290048 -RS03: try number = 1696, reading sector 291456 -RS03: try number = 1697, reading sector 292864 -RS03: try number = 1698, reading sector 294272 -RS03: try number = 1699, reading sector 295680 -RS03: try number = 1700, reading sector 297088 -RS03: try number = 1701, reading sector 298496 -RS03: try number = 1702, reading sector 299904 -RS03: try number = 1703, reading sector 301312 -RS03: try number = 1704, reading sector 302720 -RS03: try number = 1705, reading sector 304128 -RS03: try number = 1706, reading sector 305536 -RS03: try number = 1707, reading sector 306944 -RS03: try number = 1708, reading sector 308352 -RS03: try number = 1709, reading sector 309760 -RS03: try number = 1710, reading sector 311168 -RS03: try number = 1711, reading sector 312576 -RS03: try number = 1712, reading sector 313984 -RS03: try number = 1713, reading sector 315392 -RS03: try number = 1714, reading sector 316800 -RS03: try number = 1715, reading sector 318208 -RS03: try number = 1716, reading sector 319616 -RS03: try number = 1717, reading sector 321024 -RS03: try number = 1718, reading sector 322432 -RS03: try number = 1719, reading sector 323840 -RS03: try number = 1720, reading sector 325248 -RS03: try number = 1721, reading sector 326656 -RS03: try number = 1722, reading sector 328064 -RS03: try number = 1723, reading sector 329472 -RS03: try number = 1724, reading sector 330880 -RS03: try number = 1725, reading sector 332288 -RS03: try number = 1726, reading sector 333696 -RS03: try number = 1727, reading sector 335104 -RS03: try number = 1728, reading sector 336512 -RS03: try number = 1729, reading sector 337920 -RS03: try number = 1730, reading sector 339328 -RS03: try number = 1731, reading sector 340736 -RS03: try number = 1732, reading sector 342144 -RS03: try number = 1733, reading sector 343552 -RS03: try number = 1734, reading sector 344960 -RS03: try number = 1735, reading sector 346368 -RS03: try number = 1736, reading sector 347776 --> 1 untested layers remaining -- layer slice 1 -RS03: try number = 1737, reading sector 236545 --> 1 untested layers remaining -- layer slice 2 -RS03: try number = 1738, reading sector 236546 --> 1 untested layers remaining -- layer slice 3 -RS03: try number = 1739, reading sector 236547 --> 1 untested layers remaining -- layer slice 4 -RS03: try number = 1740, reading sector 236548 --> 1 untested layers remaining -- layer slice 5 -RS03: try number = 1741, reading sector 236549 --> 1 untested layers remaining -- layer slice 6 -RS03: try number = 1742, reading sector 236550 --> 1 untested layers remaining -- layer slice 7 -RS03: try number = 1743, reading sector 236551 --> 1 untested layers remaining -- layer slice 8 -RS03: try number = 1744, reading sector 236552 --> 1 untested layers remaining -- layer slice 9 -RS03: try number = 1745, reading sector 236553 --> 1 untested layers remaining -- layer slice 10 -RS03: try number = 1746, reading sector 236554 --> 1 untested layers remaining -- layer slice 11 -RS03: try number = 1747, reading sector 236555 --> 1 untested layers remaining -- layer slice 12 -RS03: try number = 1748, reading sector 236556 --> 1 untested layers remaining -- layer slice 13 -RS03: try number = 1749, reading sector 236557 --> 1 untested layers remaining -- layer slice 14 -RS03: try number = 1750, reading sector 236558 --> 1 untested layers remaining -- layer slice 15 -RS03: try number = 1751, reading sector 236559 --> 1 untested layers remaining -- layer slice 16 -RS03: try number = 1752, reading sector 236560 --> 1 untested layers remaining -- layer slice 17 -RS03: try number = 1753, reading sector 236561 --> 1 untested layers remaining -- layer slice 18 -RS03: try number = 1754, reading sector 236562 --> 1 untested layers remaining -- layer slice 19 -RS03: try number = 1755, reading sector 236563 --> 1 untested layers remaining -- layer slice 20 -RS03: try number = 1756, reading sector 236564 --> 1 untested layers remaining -- layer slice 21 -RS03: try number = 1757, reading sector 236565 --> 1 untested layers remaining -- layer slice 22 -RS03: try number = 1758, reading sector 236566 --> 1 untested layers remaining -- layer slice 23 -RS03: try number = 1759, reading sector 236567 --> 1 untested layers remaining -- layer slice 24 -RS03: try number = 1760, reading sector 236568 --> 1 untested layers remaining -- layer slice 25 -RS03: try number = 1761, reading sector 236569 --> 1 untested layers remaining -- layer slice 26 -RS03: try number = 1762, reading sector 236570 --> 1 untested layers remaining -- layer slice 27 -RS03: try number = 1763, reading sector 236571 --> 1 untested layers remaining -- layer slice 28 -RS03: try number = 1764, reading sector 236572 --> 1 untested layers remaining -- layer slice 29 -RS03: try number = 1765, reading sector 236573 --> 1 untested layers remaining -- layer slice 30 -RS03: try number = 1766, reading sector 236574 --> 1 untested layers remaining -- layer slice 31 -RS03: try number = 1767, reading sector 236575 --> 1 untested layers remaining -- layer slice 32 -RS03: try number = 1768, reading sector 236576 --> 1 untested layers remaining -- layer slice 33 -RS03: try number = 1769, reading sector 236577 --> 1 untested layers remaining -- layer slice 34 -RS03: try number = 1770, reading sector 236578 --> 1 untested layers remaining -- layer slice 35 -RS03: try number = 1771, reading sector 236579 --> 1 untested layers remaining -- layer slice 36 -RS03: try number = 1772, reading sector 236580 --> 1 untested layers remaining -- layer slice 37 -RS03: try number = 1773, reading sector 236581 --> 1 untested layers remaining -- layer slice 38 -RS03: try number = 1774, reading sector 236582 --> 1 untested layers remaining -- layer slice 39 -RS03: try number = 1775, reading sector 236583 --> 1 untested layers remaining -- layer slice 40 -RS03: try number = 1776, reading sector 236584 --> 1 untested layers remaining -- layer slice 41 -RS03: try number = 1777, reading sector 236585 --> 1 untested layers remaining -- layer slice 42 -RS03: try number = 1778, reading sector 236586 --> 1 untested layers remaining -- layer slice 43 -RS03: try number = 1779, reading sector 236587 --> 1 untested layers remaining -- layer slice 44 -RS03: try number = 1780, reading sector 236588 --> 1 untested layers remaining -- layer slice 45 -RS03: try number = 1781, reading sector 236589 --> 1 untested layers remaining -- layer slice 46 -RS03: try number = 1782, reading sector 236590 --> 1 untested layers remaining -- layer slice 47 -RS03: try number = 1783, reading sector 236591 --> 1 untested layers remaining -- layer slice 48 -RS03: try number = 1784, reading sector 236592 --> 1 untested layers remaining -- layer slice 49 -RS03: try number = 1785, reading sector 236593 --> 1 untested layers remaining -- layer slice 50 -RS03: try number = 1786, reading sector 236594 --> 1 untested layers remaining -- layer slice 51 -RS03: try number = 1787, reading sector 236595 --> 1 untested layers remaining -- layer slice 52 -RS03: try number = 1788, reading sector 236596 --> 1 untested layers remaining -- layer slice 53 -RS03: try number = 1789, reading sector 236597 --> 1 untested layers remaining -- layer slice 54 -RS03: try number = 1790, reading sector 236598 --> 1 untested layers remaining -- layer slice 55 -RS03: try number = 1791, reading sector 236599 --> 1 untested layers remaining -- layer slice 56 -RS03: try number = 1792, reading sector 236600 --> 1 untested layers remaining -- layer slice 57 -RS03: try number = 1793, reading sector 236601 --> 1 untested layers remaining -- layer slice 58 -RS03: try number = 1794, reading sector 236602 --> 1 untested layers remaining -- layer slice 59 -RS03: try number = 1795, reading sector 236603 --> 1 untested layers remaining -- layer slice 60 -RS03: try number = 1796, reading sector 236604 --> 1 untested layers remaining -- layer slice 61 -RS03: try number = 1797, reading sector 236605 --> 1 untested layers remaining -- layer slice 62 -RS03: try number = 1798, reading sector 236606 --> 1 untested layers remaining -- layer slice 63 -RS03: try number = 1799, reading sector 236607 --> 1 untested layers remaining -- layer slice 64 -RS03: try number = 1800, reading sector 236608 --> 1 untested layers remaining -- layer slice 65 -RS03: try number = 1801, reading sector 236609 --> 1 untested layers remaining -- layer slice 66 -RS03: try number = 1802, reading sector 236610 --> 1 untested layers remaining -- layer slice 67 -RS03: try number = 1803, reading sector 236611 --> 1 untested layers remaining -- layer slice 68 -RS03: try number = 1804, reading sector 236612 --> 1 untested layers remaining -- layer slice 69 -RS03: try number = 1805, reading sector 236613 --> 1 untested layers remaining -- layer slice 70 -RS03: try number = 1806, reading sector 236614 --> 1 untested layers remaining -- layer slice 71 -RS03: try number = 1807, reading sector 236615 --> 1 untested layers remaining -- layer slice 72 -RS03: try number = 1808, reading sector 236616 --> 1 untested layers remaining -- layer slice 73 -RS03: try number = 1809, reading sector 236617 --> 1 untested layers remaining -- layer slice 74 -RS03: try number = 1810, reading sector 236618 --> 1 untested layers remaining -- layer slice 75 -RS03: try number = 1811, reading sector 236619 --> 1 untested layers remaining -- layer slice 76 -RS03: try number = 1812, reading sector 236620 --> 1 untested layers remaining -- layer slice 77 -RS03: try number = 1813, reading sector 236621 --> 1 untested layers remaining -- layer slice 78 -RS03: try number = 1814, reading sector 236622 --> 1 untested layers remaining -- layer slice 79 -RS03: try number = 1815, reading sector 236623 --> 1 untested layers remaining -- layer slice 80 -RS03: try number = 1816, reading sector 236624 --> 1 untested layers remaining -- layer slice 81 -RS03: try number = 1817, reading sector 236625 --> 1 untested layers remaining -- layer slice 82 -RS03: try number = 1818, reading sector 236626 --> 1 untested layers remaining -- layer slice 83 -RS03: try number = 1819, reading sector 236627 --> 1 untested layers remaining -- layer slice 84 -RS03: try number = 1820, reading sector 236628 --> 1 untested layers remaining -- layer slice 85 -RS03: try number = 1821, reading sector 236629 --> 1 untested layers remaining -- layer slice 86 -RS03: try number = 1822, reading sector 236630 --> 1 untested layers remaining -- layer slice 87 -RS03: try number = 1823, reading sector 236631 --> 1 untested layers remaining -- layer slice 88 -RS03: try number = 1824, reading sector 236632 --> 1 untested layers remaining -- layer slice 89 -RS03: try number = 1825, reading sector 236633 --> 1 untested layers remaining -- layer slice 90 -RS03: try number = 1826, reading sector 236634 --> 1 untested layers remaining -- layer slice 91 -RS03: try number = 1827, reading sector 236635 --> 1 untested layers remaining -- layer slice 92 -RS03: try number = 1828, reading sector 236636 --> 1 untested layers remaining -- layer slice 93 -RS03: try number = 1829, reading sector 236637 --> 1 untested layers remaining -- layer slice 94 -RS03: try number = 1830, reading sector 236638 --> 1 untested layers remaining -- layer slice 95 -RS03: try number = 1831, reading sector 236639 --> 1 untested layers remaining -- layer slice 96 -RS03: try number = 1832, reading sector 236640 --> 1 untested layers remaining -- layer slice 97 -RS03: try number = 1833, reading sector 236641 --> 1 untested layers remaining -- layer slice 98 -RS03: try number = 1834, reading sector 236642 --> 1 untested layers remaining -- layer slice 99 -RS03: try number = 1835, reading sector 236643 --> 1 untested layers remaining -- layer slice 100 -RS03: try number = 1836, reading sector 236644 --> 1 untested layers remaining -- layer slice 101 -RS03: try number = 1837, reading sector 236645 --> 1 untested layers remaining -- layer slice 102 -RS03: try number = 1838, reading sector 236646 --> 1 untested layers remaining -- layer slice 103 -RS03: try number = 1839, reading sector 236647 --> 1 untested layers remaining -- layer slice 104 -RS03: try number = 1840, reading sector 236648 --> 1 untested layers remaining -- layer slice 105 -RS03: try number = 1841, reading sector 236649 --> 1 untested layers remaining -- layer slice 106 -RS03: try number = 1842, reading sector 236650 --> 1 untested layers remaining -- layer slice 107 -RS03: try number = 1843, reading sector 236651 --> 1 untested layers remaining -- layer slice 108 -RS03: try number = 1844, reading sector 236652 --> 1 untested layers remaining -- layer slice 109 -RS03: try number = 1845, reading sector 236653 --> 1 untested layers remaining -- layer slice 110 -RS03: try number = 1846, reading sector 236654 --> 1 untested layers remaining -- layer slice 111 -RS03: try number = 1847, reading sector 236655 --> 1 untested layers remaining -- layer slice 112 -RS03: try number = 1848, reading sector 236656 --> 1 untested layers remaining -- layer slice 113 -RS03: try number = 1849, reading sector 236657 --> 1 untested layers remaining -- layer slice 114 -RS03: try number = 1850, reading sector 236658 --> 1 untested layers remaining -- layer slice 115 -RS03: try number = 1851, reading sector 236659 --> 1 untested layers remaining -- layer slice 116 -RS03: try number = 1852, reading sector 236660 --> 1 untested layers remaining -- layer slice 117 -RS03: try number = 1853, reading sector 236661 --> 1 untested layers remaining -- layer slice 118 -RS03: try number = 1854, reading sector 236662 --> 1 untested layers remaining -- layer slice 119 -RS03: try number = 1855, reading sector 236663 --> 1 untested layers remaining -- layer slice 120 -RS03: try number = 1856, reading sector 236664 --> 1 untested layers remaining -- layer slice 121 -RS03: try number = 1857, reading sector 236665 --> 1 untested layers remaining -- layer slice 122 -RS03: try number = 1858, reading sector 236666 --> 1 untested layers remaining -- layer slice 123 -RS03: try number = 1859, reading sector 236667 --> 1 untested layers remaining -- layer slice 124 -RS03: try number = 1860, reading sector 236668 --> 1 untested layers remaining -- layer slice 125 -RS03: try number = 1861, reading sector 236669 --> 1 untested layers remaining -- layer slice 126 -RS03: try number = 1862, reading sector 236670 --> 1 untested layers remaining -- layer slice 127 -RS03: try number = 1863, reading sector 236671 --> 1 untested layers remaining -- layer slice 128 -RS03: try number = 1864, reading sector 236672 --> 1 untested layers remaining -- layer slice 129 -RS03: try number = 1865, reading sector 236673 --> 1 untested layers remaining -- layer slice 130 -RS03: try number = 1866, reading sector 236674 --> 1 untested layers remaining -- layer slice 131 -RS03: try number = 1867, reading sector 236675 --> 1 untested layers remaining -- layer slice 132 -RS03: try number = 1868, reading sector 236676 --> 1 untested layers remaining -- layer slice 133 -RS03: try number = 1869, reading sector 236677 --> 1 untested layers remaining -- layer slice 134 -RS03: try number = 1870, reading sector 236678 --> 1 untested layers remaining -- layer slice 135 -RS03: try number = 1871, reading sector 236679 --> 1 untested layers remaining -- layer slice 136 -RS03: try number = 1872, reading sector 236680 --> 1 untested layers remaining -- layer slice 137 -RS03: try number = 1873, reading sector 236681 --> 1 untested layers remaining -- layer slice 138 -RS03: try number = 1874, reading sector 236682 --> 1 untested layers remaining -- layer slice 139 -RS03: try number = 1875, reading sector 236683 --> 1 untested layers remaining -- layer slice 140 -RS03: try number = 1876, reading sector 236684 --> 1 untested layers remaining -- layer slice 141 -RS03: try number = 1877, reading sector 236685 --> 1 untested layers remaining -- layer slice 142 -RS03: try number = 1878, reading sector 236686 --> 1 untested layers remaining -- layer slice 143 -RS03: try number = 1879, reading sector 236687 --> 1 untested layers remaining -- layer slice 144 -RS03: try number = 1880, reading sector 236688 --> 1 untested layers remaining -- layer slice 145 -RS03: try number = 1881, reading sector 236689 --> 1 untested layers remaining -- layer slice 146 -RS03: try number = 1882, reading sector 236690 --> 1 untested layers remaining -- layer slice 147 -RS03: try number = 1883, reading sector 236691 --> 1 untested layers remaining -- layer slice 148 -RS03: try number = 1884, reading sector 236692 --> 1 untested layers remaining -- layer slice 149 -RS03: try number = 1885, reading sector 236693 --> 1 untested layers remaining -- layer slice 150 -RS03: try number = 1886, reading sector 236694 --> 1 untested layers remaining -- layer slice 151 -RS03: try number = 1887, reading sector 236695 --> 1 untested layers remaining -- layer slice 152 -RS03: try number = 1888, reading sector 236696 --> 1 untested layers remaining -- layer slice 153 -RS03: try number = 1889, reading sector 236697 --> 1 untested layers remaining -- layer slice 154 -RS03: try number = 1890, reading sector 236698 --> 1 untested layers remaining -- layer slice 155 -RS03: try number = 1891, reading sector 236699 --> 1 untested layers remaining -- layer slice 156 -RS03: try number = 1892, reading sector 236700 --> 1 untested layers remaining -- layer slice 157 -RS03: try number = 1893, reading sector 236701 --> 1 untested layers remaining -- layer slice 158 -RS03: try number = 1894, reading sector 236702 --> 1 untested layers remaining -- layer slice 159 -RS03: try number = 1895, reading sector 236703 --> 1 untested layers remaining -- layer slice 160 -RS03: try number = 1896, reading sector 236704 --> 1 untested layers remaining -- layer slice 161 -RS03: try number = 1897, reading sector 236705 --> 1 untested layers remaining -- layer slice 162 -RS03: try number = 1898, reading sector 236706 --> 1 untested layers remaining -- layer slice 163 -RS03: try number = 1899, reading sector 236707 --> 1 untested layers remaining -- layer slice 164 -RS03: try number = 1900, reading sector 236708 --> 1 untested layers remaining -- layer slice 165 -RS03: try number = 1901, reading sector 236709 --> 1 untested layers remaining -- layer slice 166 -RS03: try number = 1902, reading sector 236710 --> 1 untested layers remaining -- layer slice 167 -RS03: try number = 1903, reading sector 236711 --> 1 untested layers remaining -- layer slice 168 -RS03: try number = 1904, reading sector 236712 -** All layers tested -> no RS03 data found -.. trying layer size 1410 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1905, reading sector 118440 -RS03: try number = 1906, reading sector 119850 -RS03: try number = 1907, reading sector 121260 -RS03: try number = 1908, reading sector 122670 -RS03: try number = 1909, reading sector 124080 -RS03: try number = 1910, reading sector 125490 -RS03: try number = 1911, reading sector 126900 -RS03: try number = 1912, reading sector 128310 -RS03: try number = 1913, reading sector 129720 -RS03: try number = 1914, reading sector 131130 -RS03: try number = 1915, reading sector 132540 -RS03: try number = 1916, reading sector 133950 -RS03: try number = 1917, reading sector 135360 -RS03: try number = 1918, reading sector 136770 -RS03: try number = 1919, reading sector 138180 -RS03: try number = 1920, reading sector 139590 -RS03: try number = 1921, reading sector 141000 -RS03: try number = 1922, reading sector 142410 -RS03: try number = 1923, reading sector 143820 -RS03: try number = 1924, reading sector 145230 -RS03: try number = 1925, reading sector 146640 -RS03: try number = 1926, reading sector 148050 -RS03: try number = 1927, reading sector 149460 -RS03: try number = 1928, reading sector 150870 -RS03: try number = 1929, reading sector 152280 -RS03: try number = 1930, reading sector 153690 -RS03: try number = 1931, reading sector 155100 -RS03: try number = 1932, reading sector 156510 -RS03: try number = 1933, reading sector 157920 -RS03: try number = 1934, reading sector 159330 -RS03: try number = 1935, reading sector 160740 -RS03: try number = 1936, reading sector 162150 -RS03: try number = 1937, reading sector 163560 -RS03: try number = 1938, reading sector 164970 -RS03: try number = 1939, reading sector 166380 -RS03: try number = 1940, reading sector 167790 -RS03: try number = 1941, reading sector 169200 -RS03: try number = 1942, reading sector 170610 -RS03: try number = 1943, reading sector 172020 -RS03: try number = 1944, reading sector 173430 -RS03: try number = 1945, reading sector 174840 -RS03: try number = 1946, reading sector 176250 -RS03: try number = 1947, reading sector 177660 -RS03: try number = 1948, reading sector 179070 -RS03: try number = 1949, reading sector 180480 -RS03: try number = 1950, reading sector 181890 -RS03: try number = 1951, reading sector 183300 -RS03: try number = 1952, reading sector 184710 -RS03: try number = 1953, reading sector 186120 -RS03: try number = 1954, reading sector 187530 -RS03: try number = 1955, reading sector 188940 -RS03: try number = 1956, reading sector 190350 -RS03: try number = 1957, reading sector 191760 -RS03: try number = 1958, reading sector 193170 -RS03: try number = 1959, reading sector 194580 -RS03: try number = 1960, reading sector 195990 -RS03: try number = 1961, reading sector 197400 -RS03: try number = 1962, reading sector 198810 -RS03: try number = 1963, reading sector 200220 -RS03: try number = 1964, reading sector 201630 -RS03: try number = 1965, reading sector 203040 -RS03: try number = 1966, reading sector 204450 -RS03: try number = 1967, reading sector 205860 -RS03: try number = 1968, reading sector 207270 -RS03: try number = 1969, reading sector 208680 -RS03: try number = 1970, reading sector 210090 -RS03: try number = 1971, reading sector 211500 -RS03: try number = 1972, reading sector 212910 -RS03: try number = 1973, reading sector 214320 -RS03: try number = 1974, reading sector 215730 -RS03: try number = 1975, reading sector 217140 -RS03: try number = 1976, reading sector 218550 -RS03: try number = 1977, reading sector 219960 -RS03: try number = 1978, reading sector 221370 -RS03: try number = 1979, reading sector 222780 -RS03: try number = 1980, reading sector 224190 -RS03: try number = 1981, reading sector 225600 -RS03: try number = 1982, reading sector 227010 -RS03: try number = 1983, reading sector 228420 -RS03: try number = 1984, reading sector 229830 -RS03: try number = 1985, reading sector 231240 -RS03: try number = 1986, reading sector 232650 -RS03: try number = 1987, reading sector 234060 -RS03: try number = 1988, reading sector 235470 -RS03: try number = 1989, reading sector 236880 -RS03: try number = 1990, reading sector 238290 -RS03: try number = 1991, reading sector 239700 -RS03: try number = 1992, reading sector 241110 -RS03: try number = 1993, reading sector 242520 -RS03: try number = 1994, reading sector 243930 -RS03: try number = 1995, reading sector 245340 -RS03: try number = 1996, reading sector 246750 -RS03: try number = 1997, reading sector 248160 -RS03: try number = 1998, reading sector 249570 -RS03: try number = 1999, reading sector 250980 -RS03: try number = 2000, reading sector 252390 -RS03: try number = 2001, reading sector 253800 -RS03: try number = 2002, reading sector 255210 -RS03: try number = 2003, reading sector 256620 -RS03: try number = 2004, reading sector 258030 -RS03: try number = 2005, reading sector 259440 -RS03: try number = 2006, reading sector 260850 -RS03: try number = 2007, reading sector 262260 -RS03: try number = 2008, reading sector 263670 -RS03: try number = 2009, reading sector 265080 -RS03: try number = 2010, reading sector 266490 -RS03: try number = 2011, reading sector 267900 -RS03: try number = 2012, reading sector 269310 -RS03: try number = 2013, reading sector 270720 -RS03: try number = 2014, reading sector 272130 -RS03: try number = 2015, reading sector 273540 -RS03: try number = 2016, reading sector 274950 -RS03: try number = 2017, reading sector 276360 -RS03: try number = 2018, reading sector 277770 -RS03: try number = 2019, reading sector 279180 -RS03: try number = 2020, reading sector 280590 -RS03: try number = 2021, reading sector 282000 -RS03: try number = 2022, reading sector 283410 -RS03: try number = 2023, reading sector 284820 -RS03: try number = 2024, reading sector 286230 -RS03: try number = 2025, reading sector 287640 -RS03: try number = 2026, reading sector 289050 -RS03: try number = 2027, reading sector 290460 -RS03: try number = 2028, reading sector 291870 -RS03: try number = 2029, reading sector 293280 -RS03: try number = 2030, reading sector 294690 -RS03: try number = 2031, reading sector 296100 -RS03: try number = 2032, reading sector 297510 -RS03: try number = 2033, reading sector 298920 -RS03: try number = 2034, reading sector 300330 -RS03: try number = 2035, reading sector 301740 -RS03: try number = 2036, reading sector 303150 -RS03: try number = 2037, reading sector 304560 -RS03: try number = 2038, reading sector 305970 -RS03: try number = 2039, reading sector 307380 -RS03: try number = 2040, reading sector 308790 -RS03: try number = 2041, reading sector 310200 -RS03: try number = 2042, reading sector 311610 -RS03: try number = 2043, reading sector 313020 -RS03: try number = 2044, reading sector 314430 -RS03: try number = 2045, reading sector 315840 -RS03: try number = 2046, reading sector 317250 -RS03: try number = 2047, reading sector 318660 -RS03: try number = 2048, reading sector 320070 -RS03: try number = 2049, reading sector 321480 -RS03: try number = 2050, reading sector 322890 -RS03: try number = 2051, reading sector 324300 -RS03: try number = 2052, reading sector 325710 -RS03: try number = 2053, reading sector 327120 -RS03: try number = 2054, reading sector 328530 -RS03: try number = 2055, reading sector 329940 -RS03: try number = 2056, reading sector 331350 -RS03: try number = 2057, reading sector 332760 -RS03: try number = 2058, reading sector 334170 -RS03: try number = 2059, reading sector 335580 -RS03: try number = 2060, reading sector 336990 -RS03: try number = 2061, reading sector 338400 -RS03: try number = 2062, reading sector 339810 -RS03: try number = 2063, reading sector 341220 -RS03: try number = 2064, reading sector 342630 -RS03: try number = 2065, reading sector 344040 -RS03: try number = 2066, reading sector 345450 -RS03: try number = 2067, reading sector 346860 -RS03: try number = 2068, reading sector 348270 --> 1 untested layers remaining -- layer slice 1 -RS03: try number = 2069, reading sector 235471 --> 1 untested layers remaining -- layer slice 2 -RS03: try number = 2070, reading sector 235472 --> 1 untested layers remaining -- layer slice 3 -RS03: try number = 2071, reading sector 235473 --> 1 untested layers remaining -- layer slice 4 -RS03: try number = 2072, reading sector 235474 --> 1 untested layers remaining -- layer slice 5 -RS03: try number = 2073, reading sector 235475 --> 1 untested layers remaining -- layer slice 6 -RS03: try number = 2074, reading sector 235476 --> 1 untested layers remaining -- layer slice 7 -RS03: try number = 2075, reading sector 235477 --> 1 untested layers remaining -- layer slice 8 -RS03: try number = 2076, reading sector 235478 --> 1 untested layers remaining -- layer slice 9 -RS03: try number = 2077, reading sector 235479 --> 1 untested layers remaining -- layer slice 10 -RS03: try number = 2078, reading sector 235480 --> 1 untested layers remaining -- layer slice 11 -RS03: try number = 2079, reading sector 235481 --> 1 untested layers remaining -- layer slice 12 -RS03: try number = 2080, reading sector 235482 --> 1 untested layers remaining -- layer slice 13 -RS03: try number = 2081, reading sector 235483 --> 1 untested layers remaining -- layer slice 14 -RS03: try number = 2082, reading sector 235484 --> 1 untested layers remaining -- layer slice 15 -RS03: try number = 2083, reading sector 235485 --> 1 untested layers remaining -- layer slice 16 -RS03: try number = 2084, reading sector 235486 --> 1 untested layers remaining -- layer slice 17 -RS03: try number = 2085, reading sector 235487 --> 1 untested layers remaining -- layer slice 18 -RS03: try number = 2086, reading sector 235488 --> 1 untested layers remaining -- layer slice 19 -RS03: try number = 2087, reading sector 235489 --> 1 untested layers remaining -- layer slice 20 -RS03: try number = 2088, reading sector 235490 --> 1 untested layers remaining -- layer slice 21 -RS03: try number = 2089, reading sector 235491 --> 1 untested layers remaining -- layer slice 22 -RS03: try number = 2090, reading sector 235492 --> 1 untested layers remaining -- layer slice 23 -RS03: try number = 2091, reading sector 235493 --> 1 untested layers remaining -- layer slice 24 -RS03: try number = 2092, reading sector 235494 --> 1 untested layers remaining -- layer slice 25 -RS03: try number = 2093, reading sector 235495 --> 1 untested layers remaining -- layer slice 26 -RS03: try number = 2094, reading sector 235496 --> 1 untested layers remaining -- layer slice 27 -RS03: try number = 2095, reading sector 235497 --> 1 untested layers remaining -- layer slice 28 -RS03: try number = 2096, reading sector 235498 --> 1 untested layers remaining -- layer slice 29 -RS03: try number = 2097, reading sector 235499 --> 1 untested layers remaining -- layer slice 30 -RS03: try number = 2098, reading sector 235500 --> 1 untested layers remaining -- layer slice 31 -RS03: try number = 2099, reading sector 235501 --> 1 untested layers remaining -- layer slice 32 -RS03: try number = 2100, reading sector 235502 --> 1 untested layers remaining -- layer slice 33 -RS03: try number = 2101, reading sector 235503 --> 1 untested layers remaining -- layer slice 34 -RS03: try number = 2102, reading sector 235504 --> 1 untested layers remaining -- layer slice 35 -RS03: try number = 2103, reading sector 235505 --> 1 untested layers remaining -- layer slice 36 -RS03: try number = 2104, reading sector 235506 --> 1 untested layers remaining -- layer slice 37 -RS03: try number = 2105, reading sector 235507 --> 1 untested layers remaining -- layer slice 38 -RS03: try number = 2106, reading sector 235508 --> 1 untested layers remaining -- layer slice 39 -RS03: try number = 2107, reading sector 235509 --> 1 untested layers remaining -- layer slice 40 -RS03: try number = 2108, reading sector 235510 --> 1 untested layers remaining -- layer slice 41 -RS03: try number = 2109, reading sector 235511 --> 1 untested layers remaining -- layer slice 42 -RS03: try number = 2110, reading sector 235512 --> 1 untested layers remaining -- layer slice 43 -RS03: try number = 2111, reading sector 235513 --> 1 untested layers remaining -- layer slice 44 -RS03: try number = 2112, reading sector 235514 --> 1 untested layers remaining -- layer slice 45 -RS03: try number = 2113, reading sector 235515 --> 1 untested layers remaining -- layer slice 46 -RS03: try number = 2114, reading sector 235516 --> 1 untested layers remaining -- layer slice 47 -RS03: try number = 2115, reading sector 235517 --> 1 untested layers remaining -- layer slice 48 -RS03: try number = 2116, reading sector 235518 --> 1 untested layers remaining -- layer slice 49 -RS03: try number = 2117, reading sector 235519 --> 1 untested layers remaining -- layer slice 50 -RS03: try number = 2118, reading sector 235520 --> 1 untested layers remaining -- layer slice 51 -RS03: try number = 2119, reading sector 235521 --> 1 untested layers remaining -- layer slice 52 -RS03: try number = 2120, reading sector 235522 --> 1 untested layers remaining -- layer slice 53 -RS03: try number = 2121, reading sector 235523 --> 1 untested layers remaining -- layer slice 54 -RS03: try number = 2122, reading sector 235524 --> 1 untested layers remaining -- layer slice 55 -RS03: try number = 2123, reading sector 235525 --> 1 untested layers remaining -- layer slice 56 -RS03: try number = 2124, reading sector 235526 --> 1 untested layers remaining -- layer slice 57 -RS03: try number = 2125, reading sector 235527 --> 1 untested layers remaining -- layer slice 58 -RS03: try number = 2126, reading sector 235528 --> 1 untested layers remaining -- layer slice 59 -RS03: try number = 2127, reading sector 235529 --> 1 untested layers remaining -- layer slice 60 -RS03: try number = 2128, reading sector 235530 --> 1 untested layers remaining -- layer slice 61 -RS03: try number = 2129, reading sector 235531 --> 1 untested layers remaining -- layer slice 62 -RS03: try number = 2130, reading sector 235532 --> 1 untested layers remaining -- layer slice 63 -RS03: try number = 2131, reading sector 235533 --> 1 untested layers remaining -- layer slice 64 -RS03: try number = 2132, reading sector 235534 --> 1 untested layers remaining -- layer slice 65 -RS03: try number = 2133, reading sector 235535 --> 1 untested layers remaining -- layer slice 66 -RS03: try number = 2134, reading sector 235536 --> 1 untested layers remaining -- layer slice 67 -RS03: try number = 2135, reading sector 235537 --> 1 untested layers remaining -- layer slice 68 -RS03: try number = 2136, reading sector 235538 --> 1 untested layers remaining -- layer slice 69 -RS03: try number = 2137, reading sector 235539 --> 1 untested layers remaining -- layer slice 70 -RS03: try number = 2138, reading sector 235540 --> 1 untested layers remaining -- layer slice 71 -RS03: try number = 2139, reading sector 235541 --> 1 untested layers remaining -- layer slice 72 -RS03: try number = 2140, reading sector 235542 --> 1 untested layers remaining -- layer slice 73 -RS03: try number = 2141, reading sector 235543 --> 1 untested layers remaining -- layer slice 74 -RS03: try number = 2142, reading sector 235544 --> 1 untested layers remaining -- layer slice 75 -RS03: try number = 2143, reading sector 235545 --> 1 untested layers remaining -- layer slice 76 -RS03: try number = 2144, reading sector 235546 --> 1 untested layers remaining -- layer slice 77 -RS03: try number = 2145, reading sector 235547 --> 1 untested layers remaining -- layer slice 78 -RS03: try number = 2146, reading sector 235548 --> 1 untested layers remaining -- layer slice 79 -RS03: try number = 2147, reading sector 235549 --> 1 untested layers remaining -- layer slice 80 -RS03: try number = 2148, reading sector 235550 --> 1 untested layers remaining -- layer slice 81 -RS03: try number = 2149, reading sector 235551 --> 1 untested layers remaining -- layer slice 82 -RS03: try number = 2150, reading sector 235552 --> 1 untested layers remaining -- layer slice 83 -RS03: try number = 2151, reading sector 235553 --> 1 untested layers remaining -- layer slice 84 -RS03: try number = 2152, reading sector 235554 --> 1 untested layers remaining -- layer slice 85 -RS03: try number = 2153, reading sector 235555 --> 1 untested layers remaining -- layer slice 86 -RS03: try number = 2154, reading sector 235556 --> 1 untested layers remaining -- layer slice 87 -RS03: try number = 2155, reading sector 235557 --> 1 untested layers remaining -- layer slice 88 -RS03: try number = 2156, reading sector 235558 --> 1 untested layers remaining -- layer slice 89 -RS03: try number = 2157, reading sector 235559 --> 1 untested layers remaining -- layer slice 90 -RS03: try number = 2158, reading sector 235560 --> 1 untested layers remaining -- layer slice 91 -RS03: try number = 2159, reading sector 235561 --> 1 untested layers remaining -- layer slice 92 -RS03: try number = 2160, reading sector 235562 --> 1 untested layers remaining -- layer slice 93 -RS03: try number = 2161, reading sector 235563 --> 1 untested layers remaining -- layer slice 94 -RS03: try number = 2162, reading sector 235564 --> 1 untested layers remaining -- layer slice 95 -RS03: try number = 2163, reading sector 235565 --> 1 untested layers remaining -- layer slice 96 -RS03: try number = 2164, reading sector 235566 --> 1 untested layers remaining -- layer slice 97 -RS03: try number = 2165, reading sector 235567 --> 1 untested layers remaining -- layer slice 98 -RS03: try number = 2166, reading sector 235568 --> 1 untested layers remaining -- layer slice 99 -RS03: try number = 2167, reading sector 235569 --> 1 untested layers remaining -- layer slice 100 -RS03: try number = 2168, reading sector 235570 --> 1 untested layers remaining -- layer slice 101 -RS03: try number = 2169, reading sector 235571 --> 1 untested layers remaining -- layer slice 102 -RS03: try number = 2170, reading sector 235572 --> 1 untested layers remaining -- layer slice 103 -RS03: try number = 2171, reading sector 235573 --> 1 untested layers remaining -- layer slice 104 -RS03: try number = 2172, reading sector 235574 --> 1 untested layers remaining -- layer slice 105 -RS03: try number = 2173, reading sector 235575 --> 1 untested layers remaining -- layer slice 106 -RS03: try number = 2174, reading sector 235576 --> 1 untested layers remaining -- layer slice 107 -RS03: try number = 2175, reading sector 235577 --> 1 untested layers remaining -- layer slice 108 -RS03: try number = 2176, reading sector 235578 --> 1 untested layers remaining -- layer slice 109 -RS03: try number = 2177, reading sector 235579 --> 1 untested layers remaining -- layer slice 110 -RS03: try number = 2178, reading sector 235580 --> 1 untested layers remaining -- layer slice 111 -RS03: try number = 2179, reading sector 235581 --> 1 untested layers remaining -- layer slice 112 -RS03: try number = 2180, reading sector 235582 --> 1 untested layers remaining -- layer slice 113 -RS03: try number = 2181, reading sector 235583 --> 1 untested layers remaining -- layer slice 114 -RS03: try number = 2182, reading sector 235584 --> 1 untested layers remaining -- layer slice 115 -RS03: try number = 2183, reading sector 235585 --> 1 untested layers remaining -- layer slice 116 -RS03: try number = 2184, reading sector 235586 --> 1 untested layers remaining -- layer slice 117 -RS03: try number = 2185, reading sector 235587 --> 1 untested layers remaining -- layer slice 118 -RS03: try number = 2186, reading sector 235588 --> 1 untested layers remaining -- layer slice 119 -RS03: try number = 2187, reading sector 235589 --> 1 untested layers remaining -- layer slice 120 -RS03: try number = 2188, reading sector 235590 --> 1 untested layers remaining -- layer slice 121 -RS03: try number = 2189, reading sector 235591 --> 1 untested layers remaining -- layer slice 122 -RS03: try number = 2190, reading sector 235592 --> 1 untested layers remaining -- layer slice 123 -RS03: try number = 2191, reading sector 235593 --> 1 untested layers remaining -- layer slice 124 -RS03: try number = 2192, reading sector 235594 --> 1 untested layers remaining -- layer slice 125 -RS03: try number = 2193, reading sector 235595 --> 1 untested layers remaining -- layer slice 126 -RS03: try number = 2194, reading sector 235596 --> 1 untested layers remaining -- layer slice 127 -RS03: try number = 2195, reading sector 235597 --> 1 untested layers remaining -- layer slice 128 -RS03: try number = 2196, reading sector 235598 --> 1 untested layers remaining -- layer slice 129 -RS03: try number = 2197, reading sector 235599 --> 1 untested layers remaining -- layer slice 130 -RS03: try number = 2198, reading sector 235600 --> 1 untested layers remaining -- layer slice 131 -RS03: try number = 2199, reading sector 235601 --> 1 untested layers remaining -- layer slice 132 -RS03: try number = 2200, reading sector 235602 --> 1 untested layers remaining -- layer slice 133 -RS03: try number = 2201, reading sector 235603 --> 1 untested layers remaining -- layer slice 134 -RS03: try number = 2202, reading sector 235604 --> 1 untested layers remaining -- layer slice 135 -RS03: try number = 2203, reading sector 235605 --> 1 untested layers remaining -- layer slice 136 -RS03: try number = 2204, reading sector 235606 --> 1 untested layers remaining -- layer slice 137 -RS03: try number = 2205, reading sector 235607 --> 1 untested layers remaining -- layer slice 138 -RS03: try number = 2206, reading sector 235608 --> 1 untested layers remaining -- layer slice 139 -RS03: try number = 2207, reading sector 235609 --> 1 untested layers remaining -- layer slice 140 -RS03: try number = 2208, reading sector 235610 --> 1 untested layers remaining -- layer slice 141 -RS03: try number = 2209, reading sector 235611 --> 1 untested layers remaining -- layer slice 142 -RS03: try number = 2210, reading sector 235612 --> 1 untested layers remaining -- layer slice 143 -RS03: try number = 2211, reading sector 235613 --> 1 untested layers remaining -- layer slice 144 -RS03: try number = 2212, reading sector 235614 --> 1 untested layers remaining -- layer slice 145 -RS03: try number = 2213, reading sector 235615 --> 1 untested layers remaining -- layer slice 146 -RS03: try number = 2214, reading sector 235616 --> 1 untested layers remaining -- layer slice 147 -RS03: try number = 2215, reading sector 235617 --> 1 untested layers remaining -- layer slice 148 -RS03: try number = 2216, reading sector 235618 --> 1 untested layers remaining -- layer slice 149 -RS03: try number = 2217, reading sector 235619 --> 1 untested layers remaining -- layer slice 150 -RS03: try number = 2218, reading sector 235620 --> 1 untested layers remaining -- layer slice 151 -RS03: try number = 2219, reading sector 235621 --> 1 untested layers remaining -- layer slice 152 -RS03: try number = 2220, reading sector 235622 --> 1 untested layers remaining -- layer slice 153 -RS03: try number = 2221, reading sector 235623 --> 1 untested layers remaining -- layer slice 154 -RS03: try number = 2222, reading sector 235624 --> 1 untested layers remaining -- layer slice 155 -RS03: try number = 2223, reading sector 235625 --> 1 untested layers remaining -- layer slice 156 -RS03: try number = 2224, reading sector 235626 --> 1 untested layers remaining -- layer slice 157 -RS03: try number = 2225, reading sector 235627 --> 1 untested layers remaining -- layer slice 158 -RS03: try number = 2226, reading sector 235628 --> 1 untested layers remaining -- layer slice 159 -RS03: try number = 2227, reading sector 235629 --> 1 untested layers remaining -- layer slice 160 -RS03: try number = 2228, reading sector 235630 --> 1 untested layers remaining -- layer slice 161 -RS03: try number = 2229, reading sector 235631 --> 1 untested layers remaining -- layer slice 162 -RS03: try number = 2230, reading sector 235632 --> 1 untested layers remaining -- layer slice 163 -RS03: try number = 2231, reading sector 235633 --> 1 untested layers remaining -- layer slice 164 -RS03: try number = 2232, reading sector 235634 --> 1 untested layers remaining -- layer slice 165 -RS03: try number = 2233, reading sector 235635 --> 1 untested layers remaining -- layer slice 166 -RS03: try number = 2234, reading sector 235636 --> 1 untested layers remaining -- layer slice 167 -RS03: try number = 2235, reading sector 235637 --> 1 untested layers remaining -- layer slice 168 -RS03: try number = 2236, reading sector 235638 --> 1 untested layers remaining -- layer slice 169 -RS03: try number = 2237, reading sector 235639 --> 1 untested layers remaining -- layer slice 170 -RS03: try number = 2238, reading sector 235640 --> 1 untested layers remaining -- layer slice 171 -RS03: try number = 2239, reading sector 235641 --> 1 untested layers remaining -- layer slice 172 -RS03: try number = 2240, reading sector 235642 --> 1 untested layers remaining -- layer slice 173 -RS03: try number = 2241, reading sector 235643 --> 1 untested layers remaining -- layer slice 174 -RS03: try number = 2242, reading sector 235644 --> 1 untested layers remaining -- layer slice 175 -RS03: try number = 2243, reading sector 235645 --> 1 untested layers remaining -- layer slice 176 -RS03: try number = 2244, reading sector 235646 --> 1 untested layers remaining -- layer slice 177 -RS03: try number = 2245, reading sector 235647 --> 1 untested layers remaining -- layer slice 178 -RS03: try number = 2246, reading sector 235648 --> 1 untested layers remaining -- layer slice 179 -RS03: try number = 2247, reading sector 235649 --> 1 untested layers remaining -- layer slice 180 -RS03: try number = 2248, reading sector 235650 --> 1 untested layers remaining -- layer slice 181 -RS03: try number = 2249, reading sector 235651 --> 1 untested layers remaining -- layer slice 182 -RS03: try number = 2250, reading sector 235652 --> 1 untested layers remaining -- layer slice 183 -RS03: try number = 2251, reading sector 235653 --> 1 untested layers remaining -- layer slice 184 -RS03: try number = 2252, reading sector 235654 --> 1 untested layers remaining -- layer slice 185 -RS03: try number = 2253, reading sector 235655 --> 1 untested layers remaining -- layer slice 186 -RS03: try number = 2254, reading sector 235656 --> 1 untested layers remaining -- layer slice 187 -RS03: try number = 2255, reading sector 235657 --> 1 untested layers remaining -- layer slice 188 -RS03: try number = 2256, reading sector 235658 --> 1 untested layers remaining -- layer slice 189 -RS03: try number = 2257, reading sector 235659 --> 1 untested layers remaining -- layer slice 190 -RS03: try number = 2258, reading sector 235660 --> 1 untested layers remaining -- layer slice 191 -RS03: try number = 2259, reading sector 235661 --> 1 untested layers remaining -- layer slice 192 -RS03: try number = 2260, reading sector 235662 --> 1 untested layers remaining -- layer slice 193 -RS03: try number = 2261, reading sector 235663 --> 1 untested layers remaining -- layer slice 194 -RS03: try number = 2262, reading sector 235664 --> 1 untested layers remaining -- layer slice 195 -RS03: try number = 2263, reading sector 235665 --> 1 untested layers remaining -- layer slice 196 -RS03: try number = 2264, reading sector 235666 --> 1 untested layers remaining -- layer slice 197 -RS03: try number = 2265, reading sector 235667 --> 1 untested layers remaining -- layer slice 198 -RS03: try number = 2266, reading sector 235668 --> 1 untested layers remaining -- layer slice 199 -RS03: try number = 2267, reading sector 235669 --> 1 untested layers remaining -- layer slice 200 -RS03: try number = 2268, reading sector 235670 --> 1 untested layers remaining -- layer slice 201 -RS03: try number = 2269, reading sector 235671 --> 1 untested layers remaining -- layer slice 202 -RS03: try number = 2270, reading sector 235672 --> 1 untested layers remaining -- layer slice 203 -RS03: try number = 2271, reading sector 235673 --> 1 untested layers remaining -- layer slice 204 -RS03: try number = 2272, reading sector 235674 --> 1 untested layers remaining -- layer slice 205 -RS03: try number = 2273, reading sector 235675 --> 1 untested layers remaining -- layer slice 206 -RS03: try number = 2274, reading sector 235676 --> 1 untested layers remaining -- layer slice 207 -RS03: try number = 2275, reading sector 235677 --> 1 untested layers remaining -- layer slice 208 -RS03: try number = 2276, reading sector 235678 --> 1 untested layers remaining -- layer slice 209 -RS03: try number = 2277, reading sector 235679 --> 1 untested layers remaining -- layer slice 210 -RS03: try number = 2278, reading sector 235680 --> 1 untested layers remaining -- layer slice 211 -RS03: try number = 2279, reading sector 235681 --> 1 untested layers remaining -- layer slice 212 -RS03: try number = 2280, reading sector 235682 --> 1 untested layers remaining -- layer slice 213 -RS03: try number = 2281, reading sector 235683 --> 1 untested layers remaining -- layer slice 214 -RS03: try number = 2282, reading sector 235684 --> 1 untested layers remaining -- layer slice 215 -RS03: try number = 2283, reading sector 235685 --> 1 untested layers remaining -- layer slice 216 -RS03: try number = 2284, reading sector 235686 --> 1 untested layers remaining -- layer slice 217 -RS03: try number = 2285, reading sector 235687 --> 1 untested layers remaining -- layer slice 218 -RS03: try number = 2286, reading sector 235688 --> 1 untested layers remaining -- layer slice 219 -RS03: try number = 2287, reading sector 235689 --> 1 untested layers remaining -- layer slice 220 -RS03: try number = 2288, reading sector 235690 --> 1 untested layers remaining -- layer slice 221 -RS03: try number = 2289, reading sector 235691 --> 1 untested layers remaining -- layer slice 222 -RS03: try number = 2290, reading sector 235692 --> 1 untested layers remaining -- layer slice 223 -RS03: try number = 2291, reading sector 235693 --> 1 untested layers remaining -- layer slice 224 -RS03: try number = 2292, reading sector 235694 --> 1 untested layers remaining -- layer slice 225 -RS03: try number = 2293, reading sector 235695 --> 1 untested layers remaining -- layer slice 226 -RS03: try number = 2294, reading sector 235696 --> 1 untested layers remaining -- layer slice 227 -RS03: try number = 2295, reading sector 235697 --> 1 untested layers remaining -- layer slice 228 -RS03: try number = 2296, reading sector 235698 --> 1 untested layers remaining -- layer slice 229 -RS03: try number = 2297, reading sector 235699 --> 1 untested layers remaining -- layer slice 230 -RS03: try number = 2298, reading sector 235700 --> 1 untested layers remaining -- layer slice 231 -RS03: try number = 2299, reading sector 235701 --> 1 untested layers remaining -- layer slice 232 -RS03: try number = 2300, reading sector 235702 --> 1 untested layers remaining -- layer slice 233 -RS03: try number = 2301, reading sector 235703 --> 1 untested layers remaining -- layer slice 234 -RS03: try number = 2302, reading sector 235704 --> 1 untested layers remaining -- layer slice 235 -RS03: try number = 2303, reading sector 235705 --> 1 untested layers remaining -- layer slice 236 -RS03: try number = 2304, reading sector 235706 --> 1 untested layers remaining -- layer slice 237 -RS03: try number = 2305, reading sector 235707 --> 1 untested layers remaining -- layer slice 238 -RS03: try number = 2306, reading sector 235708 --> 1 untested layers remaining -- layer slice 239 -RS03: try number = 2307, reading sector 235709 --> 1 untested layers remaining -- layer slice 240 -RS03: try number = 2308, reading sector 235710 --> 1 untested layers remaining -- layer slice 241 -RS03: try number = 2309, reading sector 235711 --> 1 untested layers remaining -- layer slice 242 -RS03: try number = 2310, reading sector 235712 --> 1 untested layers remaining -- layer slice 243 -RS03: try number = 2311, reading sector 235713 --> 1 untested layers remaining -- layer slice 244 -RS03: try number = 2312, reading sector 235714 --> 1 untested layers remaining -- layer slice 245 -RS03: try number = 2313, reading sector 235715 --> 1 untested layers remaining -- layer slice 246 -RS03: try number = 2314, reading sector 235716 --> 1 untested layers remaining -- layer slice 247 -RS03: try number = 2315, reading sector 235717 --> 1 untested layers remaining -- layer slice 248 -RS03: try number = 2316, reading sector 235718 --> 1 untested layers remaining -- layer slice 249 -RS03: try number = 2317, reading sector 235719 --> 1 untested layers remaining -- layer slice 250 -RS03: try number = 2318, reading sector 235720 --> 1 untested layers remaining -- layer slice 251 -RS03: try number = 2319, reading sector 235721 --> 1 untested layers remaining -- layer slice 252 -RS03: try number = 2320, reading sector 235722 --> 1 untested layers remaining -- layer slice 253 -RS03: try number = 2321, reading sector 235723 --> 1 untested layers remaining -- layer slice 254 -RS03: try number = 2322, reading sector 235724 --> 1 untested layers remaining -- layer slice 255 -RS03: try number = 2323, reading sector 235725 --> 1 untested layers remaining -- layer slice 256 -RS03: try number = 2324, reading sector 235726 --> 1 untested layers remaining -- layer slice 257 -RS03: try number = 2325, reading sector 235727 --> 1 untested layers remaining -- layer slice 258 -RS03: try number = 2326, reading sector 235728 --> 1 untested layers remaining -- layer slice 259 -RS03: try number = 2327, reading sector 235729 --> 1 untested layers remaining -- layer slice 260 -RS03: try number = 2328, reading sector 235730 --> 1 untested layers remaining -- layer slice 261 -RS03: try number = 2329, reading sector 235731 --> 1 untested layers remaining -- layer slice 262 -RS03: try number = 2330, reading sector 235732 --> 1 untested layers remaining -- layer slice 263 -RS03: try number = 2331, reading sector 235733 --> 1 untested layers remaining -- layer slice 264 -RS03: try number = 2332, reading sector 235734 --> 1 untested layers remaining -- layer slice 265 -RS03: try number = 2333, reading sector 235735 --> 1 untested layers remaining -- layer slice 266 -RS03: try number = 2334, reading sector 235736 --> 1 untested layers remaining -- layer slice 267 -RS03: try number = 2335, reading sector 235737 --> 1 untested layers remaining -- layer slice 268 -RS03: try number = 2336, reading sector 235738 --> 1 untested layers remaining -- layer slice 269 -RS03: try number = 2337, reading sector 235739 --> 1 untested layers remaining -- layer slice 270 -RS03: try number = 2338, reading sector 235740 --> 1 untested layers remaining -- layer slice 271 -RS03: try number = 2339, reading sector 235741 --> 1 untested layers remaining -- layer slice 272 -RS03: try number = 2340, reading sector 235742 --> 1 untested layers remaining -- layer slice 273 -RS03: try number = 2341, reading sector 235743 --> 1 untested layers remaining -- layer slice 274 -RS03: try number = 2342, reading sector 235744 --> 1 untested layers remaining -- layer slice 275 -RS03: try number = 2343, reading sector 235745 --> 1 untested layers remaining -- layer slice 276 -RS03: try number = 2344, reading sector 235746 --> 1 untested layers remaining -- layer slice 277 -RS03: try number = 2345, reading sector 235747 --> 1 untested layers remaining -- layer slice 278 -RS03: try number = 2346, reading sector 235748 --> 1 untested layers remaining -- layer slice 279 -RS03: try number = 2347, reading sector 235749 --> 1 untested layers remaining -- layer slice 280 -RS03: try number = 2348, reading sector 235750 --> 1 untested layers remaining -- layer slice 281 -RS03: try number = 2349, reading sector 235751 --> 1 untested layers remaining -- layer slice 282 -RS03: try number = 2350, reading sector 235752 --> 1 untested layers remaining -- layer slice 283 -RS03: try number = 2351, reading sector 235753 --> 1 untested layers remaining -- layer slice 284 -RS03: try number = 2352, reading sector 235754 --> 1 untested layers remaining -- layer slice 285 -RS03: try number = 2353, reading sector 235755 --> 1 untested layers remaining -- layer slice 286 -RS03: try number = 2354, reading sector 235756 --> 1 untested layers remaining -- layer slice 287 -RS03: try number = 2355, reading sector 235757 --> 1 untested layers remaining -- layer slice 288 -RS03: try number = 2356, reading sector 235758 --> 1 untested layers remaining -- layer slice 289 -RS03: try number = 2357, reading sector 235759 --> 1 untested layers remaining -- layer slice 290 -RS03: try number = 2358, reading sector 235760 --> 1 untested layers remaining -- layer slice 291 -RS03: try number = 2359, reading sector 235761 --> 1 untested layers remaining -- layer slice 292 -RS03: try number = 2360, reading sector 235762 --> 1 untested layers remaining -- layer slice 293 -RS03: try number = 2361, reading sector 235763 --> 1 untested layers remaining -- layer slice 294 -RS03: try number = 2362, reading sector 235764 --> 1 untested layers remaining -- layer slice 295 -RS03: try number = 2363, reading sector 235765 --> 1 untested layers remaining -- layer slice 296 -RS03: try number = 2364, reading sector 235766 --> 1 untested layers remaining -- layer slice 297 -RS03: try number = 2365, reading sector 235767 --> 1 untested layers remaining -- layer slice 298 -RS03: try number = 2366, reading sector 235768 --> 1 untested layers remaining -- layer slice 299 -RS03: try number = 2367, reading sector 235769 --> 1 untested layers remaining -- layer slice 300 -RS03: try number = 2368, reading sector 235770 --> 1 untested layers remaining -- layer slice 301 -RS03: try number = 2369, reading sector 235771 --> 1 untested layers remaining -- layer slice 302 -RS03: try number = 2370, reading sector 235772 --> 1 untested layers remaining -- layer slice 303 -RS03: try number = 2371, reading sector 235773 --> 1 untested layers remaining -- layer slice 304 -RS03: try number = 2372, reading sector 235774 --> 1 untested layers remaining -- layer slice 305 -RS03: try number = 2373, reading sector 235775 --> 1 untested layers remaining -- layer slice 306 -RS03: try number = 2374, reading sector 235776 --> 1 untested layers remaining -- layer slice 307 -RS03: try number = 2375, reading sector 235777 --> 1 untested layers remaining -- layer slice 308 -RS03: try number = 2376, reading sector 235778 --> 1 untested layers remaining -- layer slice 309 -RS03: try number = 2377, reading sector 235779 --> 1 untested layers remaining -- layer slice 310 -RS03: try number = 2378, reading sector 235780 --> 1 untested layers remaining -- layer slice 311 -RS03: try number = 2379, reading sector 235781 --> 1 untested layers remaining -- layer slice 312 -RS03: try number = 2380, reading sector 235782 --> 1 untested layers remaining -- layer slice 313 -RS03: try number = 2381, reading sector 235783 --> 1 untested layers remaining -- layer slice 314 -RS03: try number = 2382, reading sector 235784 --> 1 untested layers remaining -- layer slice 315 -RS03: try number = 2383, reading sector 235785 --> 1 untested layers remaining -- layer slice 316 -RS03: try number = 2384, reading sector 235786 --> 1 untested layers remaining -- layer slice 317 -RS03: try number = 2385, reading sector 235787 --> 1 untested layers remaining -- layer slice 318 -RS03: try number = 2386, reading sector 235788 --> 1 untested layers remaining -- layer slice 319 -RS03: try number = 2387, reading sector 235789 --> 1 untested layers remaining -- layer slice 320 -RS03: try number = 2388, reading sector 235790 --> 1 untested layers remaining -- layer slice 321 -RS03: try number = 2389, reading sector 235791 --> 1 untested layers remaining -- layer slice 322 -RS03: try number = 2390, reading sector 235792 --> 1 untested layers remaining -- layer slice 323 -RS03: try number = 2391, reading sector 235793 --> 1 untested layers remaining -- layer slice 324 -RS03: try number = 2392, reading sector 235794 --> 1 untested layers remaining -- layer slice 325 -RS03: try number = 2393, reading sector 235795 --> 1 untested layers remaining -- layer slice 326 -RS03: try number = 2394, reading sector 235796 --> 1 untested layers remaining -- layer slice 327 -RS03: try number = 2395, reading sector 235797 --> 1 untested layers remaining -- layer slice 328 -RS03: try number = 2396, reading sector 235798 --> 1 untested layers remaining -- layer slice 329 -RS03: try number = 2397, reading sector 235799 --> 1 untested layers remaining -- layer slice 330 -RS03: try number = 2398, reading sector 235800 --> 1 untested layers remaining -- layer slice 331 -RS03: try number = 2399, reading sector 235801 --> 1 untested layers remaining -- layer slice 332 -RS03: try number = 2400, reading sector 235802 --> 1 untested layers remaining -- layer slice 333 -RS03: try number = 2401, reading sector 235803 --> 1 untested layers remaining -- layer slice 334 -RS03: try number = 2402, reading sector 235804 --> 1 untested layers remaining -- layer slice 335 -RS03: try number = 2403, reading sector 235805 --> 1 untested layers remaining -- layer slice 336 -RS03: try number = 2404, reading sector 235806 --> 1 untested layers remaining -- layer slice 337 -RS03: try number = 2405, reading sector 235807 --> 1 untested layers remaining -- layer slice 338 -RS03: try number = 2406, reading sector 235808 --> 1 untested layers remaining -- layer slice 339 -RS03: try number = 2407, reading sector 235809 --> 1 untested layers remaining -- layer slice 340 -RS03: try number = 2408, reading sector 235810 --> 1 untested layers remaining -- layer slice 341 -RS03: try number = 2409, reading sector 235811 --> 1 untested layers remaining -- layer slice 342 -RS03: try number = 2410, reading sector 235812 --> 1 untested layers remaining -- layer slice 343 -RS03: try number = 2411, reading sector 235813 --> 1 untested layers remaining -- layer slice 344 -RS03: try number = 2412, reading sector 235814 --> 1 untested layers remaining -- layer slice 345 -RS03: try number = 2413, reading sector 235815 --> 1 untested layers remaining -- layer slice 346 -RS03: try number = 2414, reading sector 235816 --> 1 untested layers remaining -- layer slice 347 -RS03: try number = 2415, reading sector 235817 --> 1 untested layers remaining -- layer slice 348 -RS03: try number = 2416, reading sector 235818 --> 1 untested layers remaining -- layer slice 349 -RS03: try number = 2417, reading sector 235819 --> 1 untested layers remaining -- layer slice 350 -RS03: try number = 2418, reading sector 235820 --> 1 untested layers remaining -- layer slice 351 -RS03: try number = 2419, reading sector 235821 --> 1 untested layers remaining -- layer slice 352 -RS03: try number = 2420, reading sector 235822 --> 1 untested layers remaining -- layer slice 353 -RS03: try number = 2421, reading sector 235823 --> 1 untested layers remaining -- layer slice 354 -RS03: try number = 2422, reading sector 235824 --> 1 untested layers remaining -- layer slice 355 -RS03: try number = 2423, reading sector 235825 --> 1 untested layers remaining -- layer slice 356 -RS03: try number = 2424, reading sector 235826 --> 1 untested layers remaining -- layer slice 357 -RS03: try number = 2425, reading sector 235827 --> 1 untested layers remaining -- layer slice 358 -RS03: try number = 2426, reading sector 235828 --> 1 untested layers remaining -- layer slice 359 -RS03: try number = 2427, reading sector 235829 --> 1 untested layers remaining -- layer slice 360 -RS03: try number = 2428, reading sector 235830 --> 1 untested layers remaining -- layer slice 361 -RS03: try number = 2429, reading sector 235831 --> 1 untested layers remaining -- layer slice 362 -RS03: try number = 2430, reading sector 235832 --> 1 untested layers remaining -- layer slice 363 -RS03: try number = 2431, reading sector 235833 --> 1 untested layers remaining -- layer slice 364 -RS03: try number = 2432, reading sector 235834 --> 1 untested layers remaining -- layer slice 365 -RS03: try number = 2433, reading sector 235835 --> 1 untested layers remaining -- layer slice 366 -RS03: try number = 2434, reading sector 235836 --> 1 untested layers remaining -- layer slice 367 -RS03: try number = 2435, reading sector 235837 --> 1 untested layers remaining -- layer slice 368 -RS03: try number = 2436, reading sector 235838 --> 1 untested layers remaining -- layer slice 369 -RS03: try number = 2437, reading sector 235839 --> 1 untested layers remaining -- layer slice 370 -RS03: try number = 2438, reading sector 235840 --> 1 untested layers remaining -- layer slice 371 -RS03: try number = 2439, reading sector 235841 --> 1 untested layers remaining -- layer slice 372 -RS03: try number = 2440, reading sector 235842 --> 1 untested layers remaining -- layer slice 373 -RS03: try number = 2441, reading sector 235843 --> 1 untested layers remaining -- layer slice 374 -RS03: try number = 2442, reading sector 235844 --> 1 untested layers remaining -- layer slice 375 -RS03: try number = 2443, reading sector 235845 --> 1 untested layers remaining -- layer slice 376 -RS03: try number = 2444, reading sector 235846 --> 1 untested layers remaining -- layer slice 377 -RS03: try number = 2445, reading sector 235847 --> 1 untested layers remaining -- layer slice 378 -RS03: try number = 2446, reading sector 235848 --> 1 untested layers remaining -- layer slice 379 -RS03: try number = 2447, reading sector 235849 --> 1 untested layers remaining -- layer slice 380 -RS03: try number = 2448, reading sector 235850 --> 1 untested layers remaining -- layer slice 381 -RS03: try number = 2449, reading sector 235851 --> 1 untested layers remaining -- layer slice 382 -RS03: try number = 2450, reading sector 235852 --> 1 untested layers remaining -- layer slice 383 -RS03: try number = 2451, reading sector 235853 --> 1 untested layers remaining -- layer slice 384 -RS03: try number = 2452, reading sector 235854 --> 1 untested layers remaining -- layer slice 385 -RS03: try number = 2453, reading sector 235855 --> 1 untested layers remaining -- layer slice 386 -RS03: try number = 2454, reading sector 235856 --> 1 untested layers remaining -- layer slice 387 -RS03: try number = 2455, reading sector 235857 --> 1 untested layers remaining -- layer slice 388 -RS03: try number = 2456, reading sector 235858 --> 1 untested layers remaining -- layer slice 389 -RS03: try number = 2457, reading sector 235859 --> 1 untested layers remaining -- layer slice 390 -RS03: try number = 2458, reading sector 235860 --> 1 untested layers remaining -- layer slice 391 -RS03: try number = 2459, reading sector 235861 --> 1 untested layers remaining -- layer slice 392 -RS03: try number = 2460, reading sector 235862 --> 1 untested layers remaining -- layer slice 393 -RS03: try number = 2461, reading sector 235863 --> 1 untested layers remaining -- layer slice 394 -RS03: try number = 2462, reading sector 235864 --> 1 untested layers remaining -- layer slice 395 -RS03: try number = 2463, reading sector 235865 --> 1 untested layers remaining -- layer slice 396 -RS03: try number = 2464, reading sector 235866 --> 1 untested layers remaining -- layer slice 397 -RS03: try number = 2465, reading sector 235867 --> 1 untested layers remaining -- layer slice 398 -RS03: try number = 2466, reading sector 235868 --> 1 untested layers remaining -- layer slice 399 -RS03: try number = 2467, reading sector 235869 --> 1 untested layers remaining -- layer slice 400 -RS03: try number = 2468, reading sector 235870 --> 1 untested layers remaining -- layer slice 401 -RS03: try number = 2469, reading sector 235871 --> 1 untested layers remaining -- layer slice 402 -RS03: try number = 2470, reading sector 235872 --> 1 untested layers remaining -- layer slice 403 -RS03: try number = 2471, reading sector 235873 --> 1 untested layers remaining -- layer slice 404 -RS03: try number = 2472, reading sector 235874 --> 1 untested layers remaining -- layer slice 405 -RS03: try number = 2473, reading sector 235875 --> 1 untested layers remaining -- layer slice 406 -RS03: try number = 2474, reading sector 235876 --> 1 untested layers remaining -- layer slice 407 -RS03: try number = 2475, reading sector 235877 --> 1 untested layers remaining -- layer slice 408 -RS03: try number = 2476, reading sector 235878 --> 1 untested layers remaining -- layer slice 409 -RS03: try number = 2477, reading sector 235879 --> 1 untested layers remaining -- layer slice 410 -RS03: try number = 2478, reading sector 235880 --> 1 untested layers remaining -- layer slice 411 -RS03: try number = 2479, reading sector 235881 --> 1 untested layers remaining -- layer slice 412 -RS03: try number = 2480, reading sector 235882 --> 1 untested layers remaining -- layer slice 413 -RS03: try number = 2481, reading sector 235883 --> 1 untested layers remaining -- layer slice 414 -RS03: try number = 2482, reading sector 235884 --> 1 untested layers remaining -- layer slice 415 -RS03: try number = 2483, reading sector 235885 --> 1 untested layers remaining -- layer slice 416 -RS03: try number = 2484, reading sector 235886 --> 1 untested layers remaining -- layer slice 417 -RS03: try number = 2485, reading sector 235887 --> 1 untested layers remaining -- layer slice 418 -RS03: try number = 2486, reading sector 235888 --> 1 untested layers remaining -- layer slice 419 -RS03: try number = 2487, reading sector 235889 --> 1 untested layers remaining -- layer slice 420 -RS03: try number = 2488, reading sector 235890 --> 1 untested layers remaining -- layer slice 421 -RS03: try number = 2489, reading sector 235891 --> 1 untested layers remaining -- layer slice 422 -RS03: try number = 2490, reading sector 235892 --> 1 untested layers remaining -- layer slice 423 -RS03: try number = 2491, reading sector 235893 --> 1 untested layers remaining -- layer slice 424 -RS03: try number = 2492, reading sector 235894 --> 1 untested layers remaining -- layer slice 425 -RS03: try number = 2493, reading sector 235895 --> 1 untested layers remaining -- layer slice 426 -RS03: try number = 2494, reading sector 235896 --> 1 untested layers remaining -- layer slice 427 -RS03: try number = 2495, reading sector 235897 --> 1 untested layers remaining -- layer slice 428 -RS03: try number = 2496, reading sector 235898 --> 1 untested layers remaining -- layer slice 429 -RS03: try number = 2497, reading sector 235899 --> 1 untested layers remaining -- layer slice 430 -RS03: try number = 2498, reading sector 235900 --> 1 untested layers remaining -- layer slice 431 -RS03: try number = 2499, reading sector 235901 --> 1 untested layers remaining -- layer slice 432 -RS03: try number = 2500, reading sector 235902 --> 1 untested layers remaining -- layer slice 433 -RS03: try number = 2501, reading sector 235903 --> 1 untested layers remaining -- layer slice 434 -RS03: try number = 2502, reading sector 235904 --> 1 untested layers remaining -- layer slice 435 -RS03: try number = 2503, reading sector 235905 --> 1 untested layers remaining -- layer slice 436 -RS03: try number = 2504, reading sector 235906 --> 1 untested layers remaining -- layer slice 437 -RS03: try number = 2505, reading sector 235907 --> 1 untested layers remaining -- layer slice 438 -RS03: try number = 2506, reading sector 235908 --> 1 untested layers remaining -- layer slice 439 -RS03: try number = 2507, reading sector 235909 --> 1 untested layers remaining -- layer slice 440 -RS03: try number = 2508, reading sector 235910 --> 1 untested layers remaining -- layer slice 441 -RS03: try number = 2509, reading sector 235911 --> 1 untested layers remaining -- layer slice 442 -RS03: try number = 2510, reading sector 235912 --> 1 untested layers remaining -- layer slice 443 -RS03: try number = 2511, reading sector 235913 --> 1 untested layers remaining -- layer slice 444 -RS03: try number = 2512, reading sector 235914 --> 1 untested layers remaining -- layer slice 445 -RS03: try number = 2513, reading sector 235915 --> 1 untested layers remaining -- layer slice 446 -RS03: try number = 2514, reading sector 235916 --> 1 untested layers remaining -- layer slice 447 -RS03: try number = 2515, reading sector 235917 --> 1 untested layers remaining -- layer slice 448 -RS03: try number = 2516, reading sector 235918 --> 1 untested layers remaining -- layer slice 449 -RS03: try number = 2517, reading sector 235919 --> 1 untested layers remaining -- layer slice 450 -RS03: try number = 2518, reading sector 235920 --> 1 untested layers remaining -- layer slice 451 -RS03: try number = 2519, reading sector 235921 --> 1 untested layers remaining -- layer slice 452 -RS03: try number = 2520, reading sector 235922 --> 1 untested layers remaining -- layer slice 453 -RS03: try number = 2521, reading sector 235923 --> 1 untested layers remaining -- layer slice 454 -RS03: try number = 2522, reading sector 235924 --> 1 untested layers remaining -- layer slice 455 -RS03: try number = 2523, reading sector 235925 --> 1 untested layers remaining -- layer slice 456 -RS03: try number = 2524, reading sector 235926 --> 1 untested layers remaining -- layer slice 457 -RS03: try number = 2525, reading sector 235927 --> 1 untested layers remaining -- layer slice 458 -RS03: try number = 2526, reading sector 235928 --> 1 untested layers remaining -- layer slice 459 -RS03: try number = 2527, reading sector 235929 --> 1 untested layers remaining -- layer slice 460 -RS03: try number = 2528, reading sector 235930 --> 1 untested layers remaining -- layer slice 461 -RS03: try number = 2529, reading sector 235931 --> 1 untested layers remaining -- layer slice 462 -RS03: try number = 2530, reading sector 235932 --> 1 untested layers remaining -- layer slice 463 -RS03: try number = 2531, reading sector 235933 --> 1 untested layers remaining -- layer slice 464 -RS03: try number = 2532, reading sector 235934 --> 1 untested layers remaining -- layer slice 465 -RS03: try number = 2533, reading sector 235935 --> 1 untested layers remaining -- layer slice 466 -RS03: try number = 2534, reading sector 235936 --> 1 untested layers remaining -- layer slice 467 -RS03: try number = 2535, reading sector 235937 --> 1 untested layers remaining -- layer slice 468 -RS03: try number = 2536, reading sector 235938 --> 1 untested layers remaining -- layer slice 469 -RS03: try number = 2537, reading sector 235939 --> 1 untested layers remaining -- layer slice 470 -RS03: try number = 2538, reading sector 235940 --> 1 untested layers remaining -- layer slice 471 -RS03: try number = 2539, reading sector 235941 --> 1 untested layers remaining -- layer slice 472 -RS03: try number = 2540, reading sector 235942 --> 1 untested layers remaining -- layer slice 473 -RS03: try number = 2541, reading sector 235943 --> 1 untested layers remaining -- layer slice 474 -RS03: try number = 2542, reading sector 235944 --> 1 untested layers remaining -- layer slice 475 -RS03: try number = 2543, reading sector 235945 --> 1 untested layers remaining -- layer slice 476 -RS03: try number = 2544, reading sector 235946 --> 1 untested layers remaining -- layer slice 477 -RS03: try number = 2545, reading sector 235947 --> 1 untested layers remaining -- layer slice 478 -RS03: try number = 2546, reading sector 235948 --> 1 untested layers remaining -- layer slice 479 -RS03: try number = 2547, reading sector 235949 --> 1 untested layers remaining -- layer slice 480 -RS03: try number = 2548, reading sector 235950 --> 1 untested layers remaining -- layer slice 481 -RS03: try number = 2549, reading sector 235951 --> 1 untested layers remaining -- layer slice 482 -RS03: try number = 2550, reading sector 235952 --> 1 untested layers remaining -- layer slice 483 -RS03: try number = 2551, reading sector 235953 --> 1 untested layers remaining -- layer slice 484 -RS03: try number = 2552, reading sector 235954 --> 1 untested layers remaining -- layer slice 485 -RS03: try number = 2553, reading sector 235955 --> 1 untested layers remaining -- layer slice 486 -RS03: try number = 2554, reading sector 235956 --> 1 untested layers remaining -- layer slice 487 -RS03: try number = 2555, reading sector 235957 --> 1 untested layers remaining -- layer slice 488 -RS03: try number = 2556, reading sector 235958 --> 1 untested layers remaining -- layer slice 489 -RS03: try number = 2557, reading sector 235959 --> 1 untested layers remaining -- layer slice 490 -RS03: try number = 2558, reading sector 235960 --> 1 untested layers remaining -- layer slice 491 -RS03: try number = 2559, reading sector 235961 --> 1 untested layers remaining -- layer slice 492 -RS03: try number = 2560, reading sector 235962 --> 1 untested layers remaining -- layer slice 493 -RS03: try number = 2561, reading sector 235963 --> 1 untested layers remaining -- layer slice 494 -RS03: try number = 2562, reading sector 235964 --> 1 untested layers remaining -- layer slice 495 -RS03: try number = 2563, reading sector 235965 --> 1 untested layers remaining -- layer slice 496 -RS03: try number = 2564, reading sector 235966 --> 1 untested layers remaining -- layer slice 497 -RS03: try number = 2565, reading sector 235967 --> 1 untested layers remaining -- layer slice 498 -RS03: try number = 2566, reading sector 235968 --> 1 untested layers remaining -- layer slice 499 -RS03: try number = 2567, reading sector 235969 --> 1 untested layers remaining -- layer slice 500 -RS03: try number = 2568, reading sector 235970 --> 1 untested layers remaining -- layer slice 501 -RS03: try number = 2569, reading sector 235971 --> 1 untested layers remaining -- layer slice 502 -RS03: try number = 2570, reading sector 235972 --> 1 untested layers remaining -- layer slice 503 -RS03: try number = 2571, reading sector 235973 --> 1 untested layers remaining -- layer slice 504 -RS03: try number = 2572, reading sector 235974 --> 1 untested layers remaining -- layer slice 505 -RS03: try number = 2573, reading sector 235975 --> 1 untested layers remaining -- layer slice 506 -RS03: try number = 2574, reading sector 235976 --> 1 untested layers remaining -- layer slice 507 -RS03: try number = 2575, reading sector 235977 --> 1 untested layers remaining -- layer slice 508 -RS03: try number = 2576, reading sector 235978 --> 1 untested layers remaining -- layer slice 509 -RS03: try number = 2577, reading sector 235979 --> 1 untested layers remaining -- layer slice 510 -RS03: try number = 2578, reading sector 235980 --> 1 untested layers remaining -- layer slice 511 -RS03: try number = 2579, reading sector 235981 --> 1 untested layers remaining -- layer slice 512 -RS03: try number = 2580, reading sector 235982 --> 1 untested layers remaining -- layer slice 513 -RS03: try number = 2581, reading sector 235983 --> 1 untested layers remaining -- layer slice 514 -RS03: try number = 2582, reading sector 235984 --> 1 untested layers remaining -- layer slice 515 -RS03: try number = 2583, reading sector 235985 --> 1 untested layers remaining -- layer slice 516 -RS03: try number = 2584, reading sector 235986 --> 1 untested layers remaining -- layer slice 517 -RS03: try number = 2585, reading sector 235987 --> 1 untested layers remaining -- layer slice 518 -RS03: try number = 2586, reading sector 235988 --> 1 untested layers remaining -- layer slice 519 -RS03: try number = 2587, reading sector 235989 --> 1 untested layers remaining -- layer slice 520 -RS03: try number = 2588, reading sector 235990 --> 1 untested layers remaining -- layer slice 521 -RS03: try number = 2589, reading sector 235991 --> 1 untested layers remaining -- layer slice 522 -RS03: try number = 2590, reading sector 235992 --> 1 untested layers remaining -- layer slice 523 -RS03: try number = 2591, reading sector 235993 --> 1 untested layers remaining -- layer slice 524 -RS03: try number = 2592, reading sector 235994 --> 1 untested layers remaining -- layer slice 525 -RS03: try number = 2593, reading sector 235995 --> 1 untested layers remaining -- layer slice 526 -RS03: try number = 2594, reading sector 235996 --> 1 untested layers remaining -- layer slice 527 -RS03: try number = 2595, reading sector 235997 --> 1 untested layers remaining -- layer slice 528 -RS03: try number = 2596, reading sector 235998 --> 1 untested layers remaining -- layer slice 529 -RS03: try number = 2597, reading sector 235999 --> 1 untested layers remaining -- layer slice 530 -RS03: try number = 2598, reading sector 236000 --> 1 untested layers remaining -- layer slice 531 -RS03: try number = 2599, reading sector 236001 --> 1 untested layers remaining -- layer slice 532 -RS03: try number = 2600, reading sector 236002 --> 1 untested layers remaining -- layer slice 533 -RS03: try number = 2601, reading sector 236003 --> 1 untested layers remaining -- layer slice 534 -RS03: try number = 2602, reading sector 236004 --> 1 untested layers remaining -- layer slice 535 -RS03: try number = 2603, reading sector 236005 --> 1 untested layers remaining -- layer slice 536 -RS03: try number = 2604, reading sector 236006 --> 1 untested layers remaining -- layer slice 537 -RS03: try number = 2605, reading sector 236007 --> 1 untested layers remaining -- layer slice 538 -RS03: try number = 2606, reading sector 236008 --> 1 untested layers remaining -- layer slice 539 -RS03: try number = 2607, reading sector 236009 --> 1 untested layers remaining -- layer slice 540 -RS03: try number = 2608, reading sector 236010 --> 1 untested layers remaining -- layer slice 541 -RS03: try number = 2609, reading sector 236011 --> 1 untested layers remaining -- layer slice 542 -RS03: try number = 2610, reading sector 236012 --> 1 untested layers remaining -- layer slice 543 -RS03: try number = 2611, reading sector 236013 --> 1 untested layers remaining -- layer slice 544 -RS03: try number = 2612, reading sector 236014 --> 1 untested layers remaining -- layer slice 545 -RS03: try number = 2613, reading sector 236015 --> 1 untested layers remaining -- layer slice 546 -RS03: try number = 2614, reading sector 236016 --> 1 untested layers remaining -- layer slice 547 -RS03: try number = 2615, reading sector 236017 --> 1 untested layers remaining -- layer slice 548 -RS03: try number = 2616, reading sector 236018 --> 1 untested layers remaining -- layer slice 549 -RS03: try number = 2617, reading sector 236019 --> 1 untested layers remaining -- layer slice 550 -RS03: try number = 2618, reading sector 236020 --> 1 untested layers remaining -- layer slice 551 -RS03: try number = 2619, reading sector 236021 --> 1 untested layers remaining -- layer slice 552 -RS03: try number = 2620, reading sector 236022 --> 1 untested layers remaining -- layer slice 553 -RS03: try number = 2621, reading sector 236023 --> 1 untested layers remaining -- layer slice 554 -RS03: try number = 2622, reading sector 236024 --> 1 untested layers remaining -- layer slice 555 -RS03: try number = 2623, reading sector 236025 --> 1 untested layers remaining -- layer slice 556 -RS03: try number = 2624, reading sector 236026 --> 1 untested layers remaining -- layer slice 557 -RS03: try number = 2625, reading sector 236027 --> 1 untested layers remaining -- layer slice 558 -RS03: try number = 2626, reading sector 236028 --> 1 untested layers remaining -- layer slice 559 -RS03: try number = 2627, reading sector 236029 --> 1 untested layers remaining -- layer slice 560 -RS03: try number = 2628, reading sector 236030 --> 1 untested layers remaining -- layer slice 561 -RS03: try number = 2629, reading sector 236031 --> 1 untested layers remaining -- layer slice 562 -RS03: try number = 2630, reading sector 236032 --> 1 untested layers remaining -- layer slice 563 -RS03: try number = 2631, reading sector 236033 --> 1 untested layers remaining -- layer slice 564 -RS03: try number = 2632, reading sector 236034 --> 1 untested layers remaining -- layer slice 565 -RS03: try number = 2633, reading sector 236035 --> 1 untested layers remaining -- layer slice 566 -RS03: try number = 2634, reading sector 236036 --> 1 untested layers remaining -- layer slice 567 -RS03: try number = 2635, reading sector 236037 --> 1 untested layers remaining -- layer slice 568 -RS03: try number = 2636, reading sector 236038 --> 1 untested layers remaining -- layer slice 569 -RS03: try number = 2637, reading sector 236039 --> 1 untested layers remaining -- layer slice 570 -RS03: try number = 2638, reading sector 236040 --> 1 untested layers remaining -- layer slice 571 -RS03: try number = 2639, reading sector 236041 --> 1 untested layers remaining -- layer slice 572 -RS03: try number = 2640, reading sector 236042 --> 1 untested layers remaining -- layer slice 573 -RS03: try number = 2641, reading sector 236043 --> 1 untested layers remaining -- layer slice 574 -RS03: try number = 2642, reading sector 236044 --> 1 untested layers remaining -- layer slice 575 -RS03: try number = 2643, reading sector 236045 --> 1 untested layers remaining -- layer slice 576 -RS03: try number = 2644, reading sector 236046 --> 1 untested layers remaining -- layer slice 577 -RS03: try number = 2645, reading sector 236047 --> 1 untested layers remaining -- layer slice 578 -RS03: try number = 2646, reading sector 236048 --> 1 untested layers remaining -- layer slice 579 -RS03: try number = 2647, reading sector 236049 --> 1 untested layers remaining -- layer slice 580 -RS03: try number = 2648, reading sector 236050 --> 1 untested layers remaining -- layer slice 581 -RS03: try number = 2649, reading sector 236051 --> 1 untested layers remaining -- layer slice 582 -RS03: try number = 2650, reading sector 236052 --> 1 untested layers remaining -- layer slice 583 -RS03: try number = 2651, reading sector 236053 --> 1 untested layers remaining -- layer slice 584 -RS03: try number = 2652, reading sector 236054 --> 1 untested layers remaining -- layer slice 585 -RS03: try number = 2653, reading sector 236055 --> 1 untested layers remaining -- layer slice 586 -RS03: try number = 2654, reading sector 236056 --> 1 untested layers remaining -- layer slice 587 -RS03: try number = 2655, reading sector 236057 --> 1 untested layers remaining -- layer slice 588 -RS03: try number = 2656, reading sector 236058 --> 1 untested layers remaining -- layer slice 589 -RS03: try number = 2657, reading sector 236059 --> 1 untested layers remaining -- layer slice 590 -RS03: try number = 2658, reading sector 236060 --> 1 untested layers remaining -- layer slice 591 -RS03: try number = 2659, reading sector 236061 --> 1 untested layers remaining -- layer slice 592 -RS03: try number = 2660, reading sector 236062 --> 1 untested layers remaining -- layer slice 593 -RS03: try number = 2661, reading sector 236063 --> 1 untested layers remaining -- layer slice 594 -RS03: try number = 2662, reading sector 236064 --> 1 untested layers remaining -- layer slice 595 -RS03: try number = 2663, reading sector 236065 --> 1 untested layers remaining -- layer slice 596 -RS03: try number = 2664, reading sector 236066 --> 1 untested layers remaining -- layer slice 597 -RS03: try number = 2665, reading sector 236067 --> 1 untested layers remaining -- layer slice 598 -RS03: try number = 2666, reading sector 236068 --> 1 untested layers remaining -- layer slice 599 -RS03: try number = 2667, reading sector 236069 --> 1 untested layers remaining -- layer slice 600 -RS03: try number = 2668, reading sector 236070 --> 1 untested layers remaining -- layer slice 601 -RS03: try number = 2669, reading sector 236071 --> 1 untested layers remaining -- layer slice 602 -RS03: try number = 2670, reading sector 236072 --> 1 untested layers remaining -- layer slice 603 -RS03: try number = 2671, reading sector 236073 --> 1 untested layers remaining -- layer slice 604 -RS03: try number = 2672, reading sector 236074 --> 1 untested layers remaining -- layer slice 605 -RS03: try number = 2673, reading sector 236075 --> 1 untested layers remaining -- layer slice 606 -RS03: try number = 2674, reading sector 236076 --> 1 untested layers remaining -- layer slice 607 -RS03: try number = 2675, reading sector 236077 --> 1 untested layers remaining -- layer slice 608 -RS03: try number = 2676, reading sector 236078 --> 1 untested layers remaining -- layer slice 609 -RS03: try number = 2677, reading sector 236079 --> 1 untested layers remaining -- layer slice 610 -RS03: try number = 2678, reading sector 236080 --> 1 untested layers remaining -- layer slice 611 -RS03: try number = 2679, reading sector 236081 --> 1 untested layers remaining -- layer slice 612 -RS03: try number = 2680, reading sector 236082 --> 1 untested layers remaining -- layer slice 613 -RS03: try number = 2681, reading sector 236083 --> 1 untested layers remaining -- layer slice 614 -RS03: try number = 2682, reading sector 236084 --> 1 untested layers remaining -- layer slice 615 -RS03: try number = 2683, reading sector 236085 --> 1 untested layers remaining -- layer slice 616 -RS03: try number = 2684, reading sector 236086 --> 1 untested layers remaining -- layer slice 617 -RS03: try number = 2685, reading sector 236087 --> 1 untested layers remaining -- layer slice 618 -RS03: try number = 2686, reading sector 236088 --> 1 untested layers remaining -- layer slice 619 -RS03: try number = 2687, reading sector 236089 --> 1 untested layers remaining -- layer slice 620 -RS03: try number = 2688, reading sector 236090 --> 1 untested layers remaining -- layer slice 621 -RS03: try number = 2689, reading sector 236091 --> 1 untested layers remaining -- layer slice 622 -RS03: try number = 2690, reading sector 236092 --> 1 untested layers remaining -- layer slice 623 -RS03: try number = 2691, reading sector 236093 --> 1 untested layers remaining -- layer slice 624 -RS03: try number = 2692, reading sector 236094 --> 1 untested layers remaining -- layer slice 625 -RS03: try number = 2693, reading sector 236095 --> 1 untested layers remaining -- layer slice 626 -RS03: try number = 2694, reading sector 236096 --> 1 untested layers remaining -- layer slice 627 -RS03: try number = 2695, reading sector 236097 --> 1 untested layers remaining -- layer slice 628 -RS03: try number = 2696, reading sector 236098 --> 1 untested layers remaining -- layer slice 629 -RS03: try number = 2697, reading sector 236099 --> 1 untested layers remaining -- layer slice 630 -RS03: try number = 2698, reading sector 236100 --> 1 untested layers remaining -- layer slice 631 -RS03: try number = 2699, reading sector 236101 --> 1 untested layers remaining -- layer slice 632 -RS03: try number = 2700, reading sector 236102 --> 1 untested layers remaining -- layer slice 633 -RS03: try number = 2701, reading sector 236103 --> 1 untested layers remaining -- layer slice 634 -RS03: try number = 2702, reading sector 236104 --> 1 untested layers remaining -- layer slice 635 -RS03: try number = 2703, reading sector 236105 --> 1 untested layers remaining -- layer slice 636 -RS03: try number = 2704, reading sector 236106 --> 1 untested layers remaining -- layer slice 637 -RS03: try number = 2705, reading sector 236107 --> 1 untested layers remaining -- layer slice 638 -RS03: try number = 2706, reading sector 236108 --> 1 untested layers remaining -- layer slice 639 -RS03: try number = 2707, reading sector 236109 --> 1 untested layers remaining -- layer slice 640 -RS03: try number = 2708, reading sector 236110 --> 1 untested layers remaining -- layer slice 641 -RS03: try number = 2709, reading sector 236111 --> 1 untested layers remaining -- layer slice 642 -RS03: try number = 2710, reading sector 236112 --> 1 untested layers remaining -- layer slice 643 -RS03: try number = 2711, reading sector 236113 --> 1 untested layers remaining -- layer slice 644 -RS03: try number = 2712, reading sector 236114 --> 1 untested layers remaining -- layer slice 645 -RS03: try number = 2713, reading sector 236115 --> 1 untested layers remaining -- layer slice 646 -RS03: try number = 2714, reading sector 236116 --> 1 untested layers remaining -- layer slice 647 -RS03: try number = 2715, reading sector 236117 --> 1 untested layers remaining -- layer slice 648 -RS03: try number = 2716, reading sector 236118 --> 1 untested layers remaining -- layer slice 649 -RS03: try number = 2717, reading sector 236119 --> 1 untested layers remaining -- layer slice 650 -RS03: try number = 2718, reading sector 236120 --> 1 untested layers remaining -- layer slice 651 -RS03: try number = 2719, reading sector 236121 --> 1 untested layers remaining -- layer slice 652 -RS03: try number = 2720, reading sector 236122 --> 1 untested layers remaining -- layer slice 653 -RS03: try number = 2721, reading sector 236123 --> 1 untested layers remaining -- layer slice 654 -RS03: try number = 2722, reading sector 236124 --> 1 untested layers remaining -- layer slice 655 -RS03: try number = 2723, reading sector 236125 --> 1 untested layers remaining -- layer slice 656 -RS03: try number = 2724, reading sector 236126 --> 1 untested layers remaining -- layer slice 657 -RS03: try number = 2725, reading sector 236127 --> 1 untested layers remaining -- layer slice 658 -RS03: try number = 2726, reading sector 236128 --> 1 untested layers remaining -- layer slice 659 -RS03: try number = 2727, reading sector 236129 --> 1 untested layers remaining -- layer slice 660 -RS03: try number = 2728, reading sector 236130 --> 1 untested layers remaining -- layer slice 661 -RS03: try number = 2729, reading sector 236131 --> 1 untested layers remaining -- layer slice 662 -RS03: try number = 2730, reading sector 236132 --> 1 untested layers remaining -- layer slice 663 -RS03: try number = 2731, reading sector 236133 --> 1 untested layers remaining -- layer slice 664 -RS03: try number = 2732, reading sector 236134 --> 1 untested layers remaining -- layer slice 665 -RS03: try number = 2733, reading sector 236135 --> 1 untested layers remaining -- layer slice 666 -RS03: try number = 2734, reading sector 236136 --> 1 untested layers remaining -- layer slice 667 -RS03: try number = 2735, reading sector 236137 --> 1 untested layers remaining -- layer slice 668 -RS03: try number = 2736, reading sector 236138 --> 1 untested layers remaining -- layer slice 669 -RS03: try number = 2737, reading sector 236139 --> 1 untested layers remaining -- layer slice 670 -RS03: try number = 2738, reading sector 236140 --> 1 untested layers remaining -- layer slice 671 -RS03: try number = 2739, reading sector 236141 --> 1 untested layers remaining -- layer slice 672 -RS03: try number = 2740, reading sector 236142 --> 1 untested layers remaining -- layer slice 673 -RS03: try number = 2741, reading sector 236143 --> 1 untested layers remaining -- layer slice 674 -RS03: try number = 2742, reading sector 236144 --> 1 untested layers remaining -- layer slice 675 -RS03: try number = 2743, reading sector 236145 --> 1 untested layers remaining -- layer slice 676 -RS03: try number = 2744, reading sector 236146 --> 1 untested layers remaining -- layer slice 677 -RS03: try number = 2745, reading sector 236147 --> 1 untested layers remaining -- layer slice 678 -RS03: try number = 2746, reading sector 236148 --> 1 untested layers remaining -- layer slice 679 -RS03: try number = 2747, reading sector 236149 --> 1 untested layers remaining -- layer slice 680 -RS03: try number = 2748, reading sector 236150 --> 1 untested layers remaining -- layer slice 681 -RS03: try number = 2749, reading sector 236151 --> 1 untested layers remaining -- layer slice 682 -RS03: try number = 2750, reading sector 236152 --> 1 untested layers remaining -- layer slice 683 -RS03: try number = 2751, reading sector 236153 --> 1 untested layers remaining -- layer slice 684 -RS03: try number = 2752, reading sector 236154 --> 1 untested layers remaining -- layer slice 685 -RS03: try number = 2753, reading sector 236155 --> 1 untested layers remaining -- layer slice 686 -RS03: try number = 2754, reading sector 236156 --> 1 untested layers remaining -- layer slice 687 -RS03: try number = 2755, reading sector 236157 --> 1 untested layers remaining -- layer slice 688 -RS03: try number = 2756, reading sector 236158 --> 1 untested layers remaining -- layer slice 689 -RS03: try number = 2757, reading sector 236159 --> 1 untested layers remaining -- layer slice 690 -RS03: try number = 2758, reading sector 236160 --> 1 untested layers remaining -- layer slice 691 -RS03: try number = 2759, reading sector 236161 --> 1 untested layers remaining -- layer slice 692 -RS03: try number = 2760, reading sector 236162 --> 1 untested layers remaining -- layer slice 693 -RS03: try number = 2761, reading sector 236163 --> 1 untested layers remaining -- layer slice 694 -RS03: try number = 2762, reading sector 236164 --> 1 untested layers remaining -- layer slice 695 -RS03: try number = 2763, reading sector 236165 --> 1 untested layers remaining -- layer slice 696 -RS03: try number = 2764, reading sector 236166 --> 1 untested layers remaining -- layer slice 697 -RS03: try number = 2765, reading sector 236167 --> 1 untested layers remaining -- layer slice 698 -RS03: try number = 2766, reading sector 236168 --> 1 untested layers remaining -- layer slice 699 -RS03: try number = 2767, reading sector 236169 --> 1 untested layers remaining -- layer slice 700 -RS03: try number = 2768, reading sector 236170 --> 1 untested layers remaining -- layer slice 701 -RS03: try number = 2769, reading sector 236171 --> 1 untested layers remaining -- layer slice 702 -RS03: try number = 2770, reading sector 236172 --> 1 untested layers remaining -- layer slice 703 -RS03: try number = 2771, reading sector 236173 --> 1 untested layers remaining -- layer slice 704 -RS03: try number = 2772, reading sector 236174 --> 1 untested layers remaining -- layer slice 705 -RS03: try number = 2773, reading sector 236175 --> 1 untested layers remaining -- layer slice 706 -RS03: try number = 2774, reading sector 236176 --> 1 untested layers remaining -- layer slice 707 -RS03: try number = 2775, reading sector 236177 --> 1 untested layers remaining -- layer slice 708 -RS03: try number = 2776, reading sector 236178 --> 1 untested layers remaining -- layer slice 709 -RS03: try number = 2777, reading sector 236179 --> 1 untested layers remaining -- layer slice 710 -RS03: try number = 2778, reading sector 236180 --> 1 untested layers remaining -- layer slice 711 -RS03: try number = 2779, reading sector 236181 --> 1 untested layers remaining -- layer slice 712 -RS03: try number = 2780, reading sector 236182 --> 1 untested layers remaining -- layer slice 713 -RS03: try number = 2781, reading sector 236183 --> 1 untested layers remaining -- layer slice 714 -RS03: try number = 2782, reading sector 236184 --> 1 untested layers remaining -- layer slice 715 -RS03: try number = 2783, reading sector 236185 --> 1 untested layers remaining -- layer slice 716 -RS03: try number = 2784, reading sector 236186 --> 1 untested layers remaining -- layer slice 717 -RS03: try number = 2785, reading sector 236187 --> 1 untested layers remaining -- layer slice 718 -RS03: try number = 2786, reading sector 236188 --> 1 untested layers remaining -- layer slice 719 -RS03: try number = 2787, reading sector 236189 --> 1 untested layers remaining -- layer slice 720 -RS03: try number = 2788, reading sector 236190 --> 1 untested layers remaining -- layer slice 721 -RS03: try number = 2789, reading sector 236191 --> 1 untested layers remaining -- layer slice 722 -RS03: try number = 2790, reading sector 236192 --> 1 untested layers remaining -- layer slice 723 -RS03: try number = 2791, reading sector 236193 --> 1 untested layers remaining -- layer slice 724 -RS03: try number = 2792, reading sector 236194 --> 1 untested layers remaining -- layer slice 725 -RS03: try number = 2793, reading sector 236195 --> 1 untested layers remaining -- layer slice 726 -RS03: try number = 2794, reading sector 236196 --> 1 untested layers remaining -- layer slice 727 -RS03: try number = 2795, reading sector 236197 --> 1 untested layers remaining -- layer slice 728 -RS03: try number = 2796, reading sector 236198 --> 1 untested layers remaining -- layer slice 729 -RS03: try number = 2797, reading sector 236199 --> 1 untested layers remaining -- layer slice 730 -RS03: try number = 2798, reading sector 236200 --> 1 untested layers remaining -- layer slice 731 -RS03: try number = 2799, reading sector 236201 --> 1 untested layers remaining -- layer slice 732 -RS03: try number = 2800, reading sector 236202 --> 1 untested layers remaining -- layer slice 733 -RS03: try number = 2801, reading sector 236203 --> 1 untested layers remaining -- layer slice 734 -RS03: try number = 2802, reading sector 236204 --> 1 untested layers remaining -- layer slice 735 -RS03: try number = 2803, reading sector 236205 --> 1 untested layers remaining -- layer slice 736 -RS03: try number = 2804, reading sector 236206 --> 1 untested layers remaining -- layer slice 737 -RS03: try number = 2805, reading sector 236207 --> 1 untested layers remaining -- layer slice 738 -RS03: try number = 2806, reading sector 236208 --> 1 untested layers remaining -- layer slice 739 -RS03: try number = 2807, reading sector 236209 --> 1 untested layers remaining -- layer slice 740 -RS03: try number = 2808, reading sector 236210 --> 1 untested layers remaining -- layer slice 741 -RS03: try number = 2809, reading sector 236211 --> 1 untested layers remaining -- layer slice 742 -RS03: try number = 2810, reading sector 236212 --> 1 untested layers remaining -- layer slice 743 -RS03: try number = 2811, reading sector 236213 --> 1 untested layers remaining -- layer slice 744 -RS03: try number = 2812, reading sector 236214 --> 1 untested layers remaining -- layer slice 745 -RS03: try number = 2813, reading sector 236215 --> 1 untested layers remaining -- layer slice 746 -RS03: try number = 2814, reading sector 236216 --> 1 untested layers remaining -- layer slice 747 -RS03: try number = 2815, reading sector 236217 --> 1 untested layers remaining -- layer slice 748 -RS03: try number = 2816, reading sector 236218 --> 1 untested layers remaining -- layer slice 749 -RS03: try number = 2817, reading sector 236219 --> 1 untested layers remaining -- layer slice 750 -RS03: try number = 2818, reading sector 236220 --> 1 untested layers remaining -- layer slice 751 -RS03: try number = 2819, reading sector 236221 --> 1 untested layers remaining -- layer slice 752 -RS03: try number = 2820, reading sector 236222 --> 1 untested layers remaining -- layer slice 753 -RS03: try number = 2821, reading sector 236223 --> 1 untested layers remaining -- layer slice 754 -RS03: try number = 2822, reading sector 236224 --> 1 untested layers remaining -- layer slice 755 -RS03: try number = 2823, reading sector 236225 --> 1 untested layers remaining -- layer slice 756 -RS03: try number = 2824, reading sector 236226 --> 1 untested layers remaining -- layer slice 757 -RS03: try number = 2825, reading sector 236227 --> 1 untested layers remaining -- layer slice 758 -RS03: try number = 2826, reading sector 236228 --> 1 untested layers remaining -- layer slice 759 -RS03: try number = 2827, reading sector 236229 --> 1 untested layers remaining -- layer slice 760 -RS03: try number = 2828, reading sector 236230 --> 1 untested layers remaining -- layer slice 761 -RS03: try number = 2829, reading sector 236231 --> 1 untested layers remaining -- layer slice 762 -RS03: try number = 2830, reading sector 236232 --> 1 untested layers remaining -- layer slice 763 -RS03: try number = 2831, reading sector 236233 --> 1 untested layers remaining -- layer slice 764 -RS03: try number = 2832, reading sector 236234 --> 1 untested layers remaining -- layer slice 765 -RS03: try number = 2833, reading sector 236235 --> 1 untested layers remaining -- layer slice 766 -RS03: try number = 2834, reading sector 236236 --> 1 untested layers remaining -- layer slice 767 -RS03: try number = 2835, reading sector 236237 --> 1 untested layers remaining -- layer slice 768 -RS03: try number = 2836, reading sector 236238 --> 1 untested layers remaining -- layer slice 769 -RS03: try number = 2837, reading sector 236239 --> 1 untested layers remaining -- layer slice 770 -RS03: try number = 2838, reading sector 236240 --> 1 untested layers remaining -- layer slice 771 -RS03: try number = 2839, reading sector 236241 --> 1 untested layers remaining -- layer slice 772 -RS03: try number = 2840, reading sector 236242 --> 1 untested layers remaining -- layer slice 773 -RS03: try number = 2841, reading sector 236243 --> 1 untested layers remaining -- layer slice 774 -RS03: try number = 2842, reading sector 236244 --> 1 untested layers remaining -- layer slice 775 -RS03: try number = 2843, reading sector 236245 --> 1 untested layers remaining -- layer slice 776 -RS03: try number = 2844, reading sector 236246 --> 1 untested layers remaining -- layer slice 777 -RS03: try number = 2845, reading sector 236247 --> 1 untested layers remaining -- layer slice 778 -RS03: try number = 2846, reading sector 236248 --> 1 untested layers remaining -- layer slice 779 -RS03: try number = 2847, reading sector 236249 --> 1 untested layers remaining -- layer slice 780 -RS03: try number = 2848, reading sector 236250 --> 1 untested layers remaining -- layer slice 781 -RS03: try number = 2849, reading sector 236251 --> 1 untested layers remaining -- layer slice 782 -RS03: try number = 2850, reading sector 236252 --> 1 untested layers remaining -- layer slice 783 -RS03: try number = 2851, reading sector 236253 --> 1 untested layers remaining -- layer slice 784 -RS03: try number = 2852, reading sector 236254 --> 1 untested layers remaining -- layer slice 785 -RS03: try number = 2853, reading sector 236255 --> 1 untested layers remaining -- layer slice 786 -RS03: try number = 2854, reading sector 236256 --> 1 untested layers remaining -- layer slice 787 -RS03: try number = 2855, reading sector 236257 --> 1 untested layers remaining -- layer slice 788 -RS03: try number = 2856, reading sector 236258 --> 1 untested layers remaining -- layer slice 789 -RS03: try number = 2857, reading sector 236259 --> 1 untested layers remaining -- layer slice 790 -RS03: try number = 2858, reading sector 236260 --> 1 untested layers remaining -- layer slice 791 -RS03: try number = 2859, reading sector 236261 --> 1 untested layers remaining -- layer slice 792 -RS03: try number = 2860, reading sector 236262 --> 1 untested layers remaining -- layer slice 793 -RS03: try number = 2861, reading sector 236263 --> 1 untested layers remaining -- layer slice 794 -RS03: try number = 2862, reading sector 236264 --> 1 untested layers remaining -- layer slice 795 -RS03: try number = 2863, reading sector 236265 --> 1 untested layers remaining -- layer slice 796 -RS03: try number = 2864, reading sector 236266 --> 1 untested layers remaining -- layer slice 797 -RS03: try number = 2865, reading sector 236267 --> 1 untested layers remaining -- layer slice 798 -RS03: try number = 2866, reading sector 236268 --> 1 untested layers remaining -- layer slice 799 -RS03: try number = 2867, reading sector 236269 --> 1 untested layers remaining -- layer slice 800 -RS03: try number = 2868, reading sector 236270 --> 1 untested layers remaining -- layer slice 801 -RS03: try number = 2869, reading sector 236271 --> 1 untested layers remaining -- layer slice 802 -RS03: try number = 2870, reading sector 236272 --> 1 untested layers remaining -- layer slice 803 -RS03: try number = 2871, reading sector 236273 --> 1 untested layers remaining -- layer slice 804 -RS03: try number = 2872, reading sector 236274 --> 1 untested layers remaining -- layer slice 805 -RS03: try number = 2873, reading sector 236275 --> 1 untested layers remaining -- layer slice 806 -RS03: try number = 2874, reading sector 236276 --> 1 untested layers remaining -- layer slice 807 -RS03: try number = 2875, reading sector 236277 --> 1 untested layers remaining -- layer slice 808 -RS03: try number = 2876, reading sector 236278 --> 1 untested layers remaining -- layer slice 809 -RS03: try number = 2877, reading sector 236279 --> 1 untested layers remaining -- layer slice 810 -RS03: try number = 2878, reading sector 236280 --> 1 untested layers remaining -- layer slice 811 -RS03: try number = 2879, reading sector 236281 --> 1 untested layers remaining -- layer slice 812 -RS03: try number = 2880, reading sector 236282 --> 1 untested layers remaining -- layer slice 813 -RS03: try number = 2881, reading sector 236283 --> 1 untested layers remaining -- layer slice 814 -RS03: try number = 2882, reading sector 236284 --> 1 untested layers remaining -- layer slice 815 -RS03: try number = 2883, reading sector 236285 --> 1 untested layers remaining -- layer slice 816 -RS03: try number = 2884, reading sector 236286 --> 1 untested layers remaining -- layer slice 817 -RS03: try number = 2885, reading sector 236287 --> 1 untested layers remaining -- layer slice 818 -RS03: try number = 2886, reading sector 236288 --> 1 untested layers remaining -- layer slice 819 -RS03: try number = 2887, reading sector 236289 --> 1 untested layers remaining -- layer slice 820 -RS03: try number = 2888, reading sector 236290 --> 1 untested layers remaining -- layer slice 821 -RS03: try number = 2889, reading sector 236291 --> 1 untested layers remaining -- layer slice 822 -RS03: try number = 2890, reading sector 236292 --> 1 untested layers remaining -- layer slice 823 -RS03: try number = 2891, reading sector 236293 --> 1 untested layers remaining -- layer slice 824 -RS03: try number = 2892, reading sector 236294 --> 1 untested layers remaining -- layer slice 825 -RS03: try number = 2893, reading sector 236295 --> 1 untested layers remaining -- layer slice 826 -RS03: try number = 2894, reading sector 236296 --> 1 untested layers remaining -- layer slice 827 -RS03: try number = 2895, reading sector 236297 --> 1 untested layers remaining -- layer slice 828 -RS03: try number = 2896, reading sector 236298 --> 1 untested layers remaining -- layer slice 829 -RS03: try number = 2897, reading sector 236299 --> 1 untested layers remaining -- layer slice 830 -RS03: try number = 2898, reading sector 236300 --> 1 untested layers remaining -- layer slice 831 -RS03: try number = 2899, reading sector 236301 --> 1 untested layers remaining -- layer slice 832 -RS03: try number = 2900, reading sector 236302 --> 1 untested layers remaining -- layer slice 833 -RS03: try number = 2901, reading sector 236303 --> 1 untested layers remaining -- layer slice 834 -RS03: try number = 2902, reading sector 236304 --> 1 untested layers remaining -- layer slice 835 -RS03: try number = 2903, reading sector 236305 --> 1 untested layers remaining -- layer slice 836 -RS03: try number = 2904, reading sector 236306 --> 1 untested layers remaining -- layer slice 837 -RS03: try number = 2905, reading sector 236307 --> 1 untested layers remaining -- layer slice 838 -RS03: try number = 2906, reading sector 236308 --> 1 untested layers remaining -- layer slice 839 -RS03: try number = 2907, reading sector 236309 --> 1 untested layers remaining -- layer slice 840 -RS03: try number = 2908, reading sector 236310 --> 1 untested layers remaining -- layer slice 841 -RS03: try number = 2909, reading sector 236311 --> 1 untested layers remaining -- layer slice 842 -RS03: try number = 2910, reading sector 236312 --> 1 untested layers remaining -- layer slice 843 -RS03: try number = 2911, reading sector 236313 --> 1 untested layers remaining -- layer slice 844 -RS03: try number = 2912, reading sector 236314 --> 1 untested layers remaining -- layer slice 845 -RS03: try number = 2913, reading sector 236315 --> 1 untested layers remaining -- layer slice 846 -RS03: try number = 2914, reading sector 236316 --> 1 untested layers remaining -- layer slice 847 -RS03: try number = 2915, reading sector 236317 --> 1 untested layers remaining -- layer slice 848 -RS03: try number = 2916, reading sector 236318 --> 1 untested layers remaining -- layer slice 849 -RS03: try number = 2917, reading sector 236319 --> 1 untested layers remaining -- layer slice 850 -RS03: try number = 2918, reading sector 236320 --> 1 untested layers remaining -- layer slice 851 -RS03: try number = 2919, reading sector 236321 --> 1 untested layers remaining -- layer slice 852 -RS03: try number = 2920, reading sector 236322 --> 1 untested layers remaining -- layer slice 853 -RS03: try number = 2921, reading sector 236323 --> 1 untested layers remaining -- layer slice 854 -RS03: try number = 2922, reading sector 236324 --> 1 untested layers remaining -- layer slice 855 -RS03: try number = 2923, reading sector 236325 --> 1 untested layers remaining -- layer slice 856 -RS03: try number = 2924, reading sector 236326 --> 1 untested layers remaining -- layer slice 857 -RS03: try number = 2925, reading sector 236327 --> 1 untested layers remaining -- layer slice 858 -RS03: try number = 2926, reading sector 236328 --> 1 untested layers remaining -- layer slice 859 -RS03: try number = 2927, reading sector 236329 --> 1 untested layers remaining -- layer slice 860 -RS03: try number = 2928, reading sector 236330 --> 1 untested layers remaining -- layer slice 861 -RS03: try number = 2929, reading sector 236331 --> 1 untested layers remaining -- layer slice 862 -RS03: try number = 2930, reading sector 236332 --> 1 untested layers remaining -- layer slice 863 -RS03: try number = 2931, reading sector 236333 --> 1 untested layers remaining -- layer slice 864 -RS03: try number = 2932, reading sector 236334 --> 1 untested layers remaining -- layer slice 865 -RS03: try number = 2933, reading sector 236335 --> 1 untested layers remaining -- layer slice 866 -RS03: try number = 2934, reading sector 236336 --> 1 untested layers remaining -- layer slice 867 -RS03: try number = 2935, reading sector 236337 --> 1 untested layers remaining -- layer slice 868 -RS03: try number = 2936, reading sector 236338 --> 1 untested layers remaining -- layer slice 869 -RS03: try number = 2937, reading sector 236339 --> 1 untested layers remaining -- layer slice 870 -RS03: try number = 2938, reading sector 236340 --> 1 untested layers remaining -- layer slice 871 -RS03: try number = 2939, reading sector 236341 --> 1 untested layers remaining -- layer slice 872 -RS03: try number = 2940, reading sector 236342 --> 1 untested layers remaining -- layer slice 873 -RS03: try number = 2941, reading sector 236343 --> 1 untested layers remaining -- layer slice 874 -RS03: try number = 2942, reading sector 236344 --> 1 untested layers remaining -- layer slice 875 -RS03: try number = 2943, reading sector 236345 --> 1 untested layers remaining -- layer slice 876 -RS03: try number = 2944, reading sector 236346 --> 1 untested layers remaining -- layer slice 877 -RS03: try number = 2945, reading sector 236347 --> 1 untested layers remaining -- layer slice 878 -RS03: try number = 2946, reading sector 236348 --> 1 untested layers remaining -- layer slice 879 -RS03: try number = 2947, reading sector 236349 --> 1 untested layers remaining -- layer slice 880 -RS03: try number = 2948, reading sector 236350 --> 1 untested layers remaining -- layer slice 881 -RS03: try number = 2949, reading sector 236351 --> 1 untested layers remaining -- layer slice 882 -RS03: try number = 2950, reading sector 236352 --> 1 untested layers remaining -- layer slice 883 -RS03: try number = 2951, reading sector 236353 --> 1 untested layers remaining -- layer slice 884 -RS03: try number = 2952, reading sector 236354 --> 1 untested layers remaining -- layer slice 885 -RS03: try number = 2953, reading sector 236355 --> 1 untested layers remaining -- layer slice 886 -RS03: try number = 2954, reading sector 236356 --> 1 untested layers remaining -- layer slice 887 -RS03: try number = 2955, reading sector 236357 --> 1 untested layers remaining -- layer slice 888 -RS03: try number = 2956, reading sector 236358 --> 1 untested layers remaining -- layer slice 889 -RS03: try number = 2957, reading sector 236359 --> 1 untested layers remaining -- layer slice 890 -RS03: try number = 2958, reading sector 236360 --> 1 untested layers remaining -- layer slice 891 -RS03: try number = 2959, reading sector 236361 --> 1 untested layers remaining -- layer slice 892 -RS03: try number = 2960, reading sector 236362 --> 1 untested layers remaining -- layer slice 893 -RS03: try number = 2961, reading sector 236363 --> 1 untested layers remaining -- layer slice 894 -RS03: try number = 2962, reading sector 236364 --> 1 untested layers remaining -- layer slice 895 -RS03: try number = 2963, reading sector 236365 --> 1 untested layers remaining -- layer slice 896 -RS03: try number = 2964, reading sector 236366 --> 1 untested layers remaining -- layer slice 897 -RS03: try number = 2965, reading sector 236367 --> 1 untested layers remaining -- layer slice 898 -RS03: try number = 2966, reading sector 236368 --> 1 untested layers remaining -- layer slice 899 -RS03: try number = 2967, reading sector 236369 --> 1 untested layers remaining -- layer slice 900 -RS03: try number = 2968, reading sector 236370 --> 1 untested layers remaining -- layer slice 901 -RS03: try number = 2969, reading sector 236371 --> 1 untested layers remaining -- layer slice 902 -RS03: try number = 2970, reading sector 236372 --> 1 untested layers remaining -- layer slice 903 -RS03: try number = 2971, reading sector 236373 --> 1 untested layers remaining -- layer slice 904 -RS03: try number = 2972, reading sector 236374 --> 1 untested layers remaining -- layer slice 905 -RS03: try number = 2973, reading sector 236375 --> 1 untested layers remaining -- layer slice 906 -RS03: try number = 2974, reading sector 236376 --> 1 untested layers remaining -- layer slice 907 -RS03: try number = 2975, reading sector 236377 --> 1 untested layers remaining -- layer slice 908 -RS03: try number = 2976, reading sector 236378 --> 1 untested layers remaining -- layer slice 909 -RS03: try number = 2977, reading sector 236379 --> 1 untested layers remaining -- layer slice 910 -RS03: try number = 2978, reading sector 236380 --> 1 untested layers remaining -- layer slice 911 -RS03: try number = 2979, reading sector 236381 --> 1 untested layers remaining -- layer slice 912 -RS03: try number = 2980, reading sector 236382 --> 1 untested layers remaining -- layer slice 913 -RS03: try number = 2981, reading sector 236383 --> 1 untested layers remaining -- layer slice 914 -RS03: try number = 2982, reading sector 236384 --> 1 untested layers remaining -- layer slice 915 -RS03: try number = 2983, reading sector 236385 --> 1 untested layers remaining -- layer slice 916 -RS03: try number = 2984, reading sector 236386 --> 1 untested layers remaining -- layer slice 917 -RS03: try number = 2985, reading sector 236387 --> 1 untested layers remaining -- layer slice 918 -RS03: try number = 2986, reading sector 236388 --> 1 untested layers remaining -- layer slice 919 -RS03: try number = 2987, reading sector 236389 --> 1 untested layers remaining -- layer slice 920 -RS03: try number = 2988, reading sector 236390 --> 1 untested layers remaining -- layer slice 921 -RS03: try number = 2989, reading sector 236391 --> 1 untested layers remaining -- layer slice 922 -RS03: try number = 2990, reading sector 236392 --> 1 untested layers remaining -- layer slice 923 -RS03: try number = 2991, reading sector 236393 --> 1 untested layers remaining -- layer slice 924 -RS03: try number = 2992, reading sector 236394 --> 1 untested layers remaining -- layer slice 925 -RS03: try number = 2993, reading sector 236395 --> 1 untested layers remaining -- layer slice 926 -RS03: try number = 2994, reading sector 236396 --> 1 untested layers remaining -- layer slice 927 -RS03: try number = 2995, reading sector 236397 --> 1 untested layers remaining -- layer slice 928 -RS03: try number = 2996, reading sector 236398 --> 1 untested layers remaining -- layer slice 929 -RS03: try number = 2997, reading sector 236399 --> 1 untested layers remaining -- layer slice 930 -RS03: try number = 2998, reading sector 236400 --> 1 untested layers remaining -- layer slice 931 -RS03: try number = 2999, reading sector 236401 --> 1 untested layers remaining -- layer slice 932 -RS03: try number = 3000, reading sector 236402 --> 1 untested layers remaining -- layer slice 933 -RS03: try number = 3001, reading sector 236403 --> 1 untested layers remaining -- layer slice 934 -RS03: try number = 3002, reading sector 236404 --> 1 untested layers remaining -- layer slice 935 -RS03: try number = 3003, reading sector 236405 --> 1 untested layers remaining -- layer slice 936 -RS03: try number = 3004, reading sector 236406 --> 1 untested layers remaining -- layer slice 937 -RS03: try number = 3005, reading sector 236407 --> 1 untested layers remaining -- layer slice 938 -RS03: try number = 3006, reading sector 236408 --> 1 untested layers remaining -- layer slice 939 -RS03: try number = 3007, reading sector 236409 --> 1 untested layers remaining -- layer slice 940 -RS03: try number = 3008, reading sector 236410 --> 1 untested layers remaining -- layer slice 941 -RS03: try number = 3009, reading sector 236411 --> 1 untested layers remaining -- layer slice 942 -RS03: try number = 3010, reading sector 236412 --> 1 untested layers remaining -- layer slice 943 -RS03: try number = 3011, reading sector 236413 --> 1 untested layers remaining -- layer slice 944 -RS03: try number = 3012, reading sector 236414 --> 1 untested layers remaining -- layer slice 945 -RS03: try number = 3013, reading sector 236415 --> 1 untested layers remaining -- layer slice 946 -RS03: try number = 3014, reading sector 236416 --> 1 untested layers remaining -- layer slice 947 -RS03: try number = 3015, reading sector 236417 --> 1 untested layers remaining -- layer slice 948 -RS03: try number = 3016, reading sector 236418 --> 1 untested layers remaining -- layer slice 949 -RS03: try number = 3017, reading sector 236419 --> 1 untested layers remaining -- layer slice 950 -RS03: try number = 3018, reading sector 236420 --> 1 untested layers remaining -- layer slice 951 -RS03: try number = 3019, reading sector 236421 --> 1 untested layers remaining -- layer slice 952 -RS03: try number = 3020, reading sector 236422 --> 1 untested layers remaining -- layer slice 953 -RS03: try number = 3021, reading sector 236423 --> 1 untested layers remaining -- layer slice 954 -RS03: try number = 3022, reading sector 236424 --> 1 untested layers remaining -- layer slice 955 -RS03: try number = 3023, reading sector 236425 --> 1 untested layers remaining -- layer slice 956 -RS03: try number = 3024, reading sector 236426 --> 1 untested layers remaining -- layer slice 957 -RS03: try number = 3025, reading sector 236427 --> 1 untested layers remaining -- layer slice 958 -RS03: try number = 3026, reading sector 236428 --> 1 untested layers remaining -- layer slice 959 -RS03: try number = 3027, reading sector 236429 --> 1 untested layers remaining -- layer slice 960 -RS03: try number = 3028, reading sector 236430 --> 1 untested layers remaining -- layer slice 961 -RS03: try number = 3029, reading sector 236431 --> 1 untested layers remaining -- layer slice 962 -RS03: try number = 3030, reading sector 236432 --> 1 untested layers remaining -- layer slice 963 -RS03: try number = 3031, reading sector 236433 --> 1 untested layers remaining -- layer slice 964 -RS03: try number = 3032, reading sector 236434 --> 1 untested layers remaining -- layer slice 965 -RS03: try number = 3033, reading sector 236435 --> 1 untested layers remaining -- layer slice 966 -RS03: try number = 3034, reading sector 236436 --> 1 untested layers remaining -- layer slice 967 -RS03: try number = 3035, reading sector 236437 --> 1 untested layers remaining -- layer slice 968 -RS03: try number = 3036, reading sector 236438 --> 1 untested layers remaining -- layer slice 969 -RS03: try number = 3037, reading sector 236439 --> 1 untested layers remaining -- layer slice 970 -RS03: try number = 3038, reading sector 236440 --> 1 untested layers remaining -- layer slice 971 -RS03: try number = 3039, reading sector 236441 --> 1 untested layers remaining -- layer slice 972 -RS03: try number = 3040, reading sector 236442 --> 1 untested layers remaining -- layer slice 973 -RS03: try number = 3041, reading sector 236443 --> 1 untested layers remaining -- layer slice 974 -RS03: try number = 3042, reading sector 236444 --> 1 untested layers remaining -- layer slice 975 -RS03: try number = 3043, reading sector 236445 --> 1 untested layers remaining -- layer slice 976 -RS03: try number = 3044, reading sector 236446 --> 1 untested layers remaining -- layer slice 977 -RS03: try number = 3045, reading sector 236447 --> 1 untested layers remaining -- layer slice 978 -RS03: try number = 3046, reading sector 236448 --> 1 untested layers remaining -- layer slice 979 -RS03: try number = 3047, reading sector 236449 --> 1 untested layers remaining -- layer slice 980 -RS03: try number = 3048, reading sector 236450 --> 1 untested layers remaining -- layer slice 981 -RS03: try number = 3049, reading sector 236451 --> 1 untested layers remaining -- layer slice 982 -RS03: try number = 3050, reading sector 236452 --> 1 untested layers remaining -- layer slice 983 -RS03: try number = 3051, reading sector 236453 --> 1 untested layers remaining -- layer slice 984 -RS03: try number = 3052, reading sector 236454 --> 1 untested layers remaining -- layer slice 985 -RS03: try number = 3053, reading sector 236455 --> 1 untested layers remaining -- layer slice 986 -RS03: try number = 3054, reading sector 236456 --> 1 untested layers remaining -- layer slice 987 -RS03: try number = 3055, reading sector 236457 --> 1 untested layers remaining -- layer slice 988 -RS03: try number = 3056, reading sector 236458 --> 1 untested layers remaining -- layer slice 989 -RS03: try number = 3057, reading sector 236459 --> 1 untested layers remaining -- layer slice 990 -RS03: try number = 3058, reading sector 236460 --> 1 untested layers remaining -- layer slice 991 -RS03: try number = 3059, reading sector 236461 --> 1 untested layers remaining -- layer slice 992 -RS03: try number = 3060, reading sector 236462 --> 1 untested layers remaining -- layer slice 993 -RS03: try number = 3061, reading sector 236463 --> 1 untested layers remaining -- layer slice 994 -RS03: try number = 3062, reading sector 236464 --> 1 untested layers remaining -- layer slice 995 -RS03: try number = 3063, reading sector 236465 --> 1 untested layers remaining -- layer slice 996 -RS03: try number = 3064, reading sector 236466 --> 1 untested layers remaining -- layer slice 997 -RS03: try number = 3065, reading sector 236467 --> 1 untested layers remaining -- layer slice 998 -RS03: try number = 3066, reading sector 236468 --> 1 untested layers remaining -- layer slice 999 -RS03: try number = 3067, reading sector 236469 --> 1 untested layers remaining -- layer slice 1000 -RS03: try number = 3068, reading sector 236470 --> 1 untested layers remaining -- layer slice 1001 -RS03: try number = 3069, reading sector 236471 --> 1 untested layers remaining -- layer slice 1002 -RS03: try number = 3070, reading sector 236472 --> 1 untested layers remaining -- layer slice 1003 -RS03: try number = 3071, reading sector 236473 --> 1 untested layers remaining -- layer slice 1004 -RS03: try number = 3072, reading sector 236474 --> 1 untested layers remaining -- layer slice 1005 -RS03: try number = 3073, reading sector 236475 --> 1 untested layers remaining -- layer slice 1006 -RS03: try number = 3074, reading sector 236476 --> 1 untested layers remaining -- layer slice 1007 -RS03: try number = 3075, reading sector 236477 --> 1 untested layers remaining -- layer slice 1008 -RS03: try number = 3076, reading sector 236478 --> 1 untested layers remaining -- layer slice 1009 -RS03: try number = 3077, reading sector 236479 --> 1 untested layers remaining -- layer slice 1010 -RS03: try number = 3078, reading sector 236480 --> 1 untested layers remaining -- layer slice 1011 -RS03: try number = 3079, reading sector 236481 --> 1 untested layers remaining -- layer slice 1012 -RS03: try number = 3080, reading sector 236482 --> 1 untested layers remaining -- layer slice 1013 -RS03: try number = 3081, reading sector 236483 --> 1 untested layers remaining -- layer slice 1014 -RS03: try number = 3082, reading sector 236484 --> 1 untested layers remaining -- layer slice 1015 -RS03: try number = 3083, reading sector 236485 --> 1 untested layers remaining -- layer slice 1016 -RS03: try number = 3084, reading sector 236486 --> 1 untested layers remaining -- layer slice 1017 -RS03: try number = 3085, reading sector 236487 --> 1 untested layers remaining -- layer slice 1018 -RS03: try number = 3086, reading sector 236488 --> 1 untested layers remaining -- layer slice 1019 -RS03: try number = 3087, reading sector 236489 --> 1 untested layers remaining -- layer slice 1020 -RS03: try number = 3088, reading sector 236490 --> 1 untested layers remaining -- layer slice 1021 -RS03: try number = 3089, reading sector 236491 --> 1 untested layers remaining -- layer slice 1022 -RS03: try number = 3090, reading sector 236492 --> 1 untested layers remaining -- layer slice 1023 -RS03: try number = 3091, reading sector 236493 --> 1 untested layers remaining -- layer slice 1024 -RS03: try number = 3092, reading sector 236494 --> 1 untested layers remaining -- layer slice 1025 -RS03: try number = 3093, reading sector 236495 --> 1 untested layers remaining -- layer slice 1026 -RS03: try number = 3094, reading sector 236496 --> 1 untested layers remaining -- layer slice 1027 -RS03: try number = 3095, reading sector 236497 --> 1 untested layers remaining -- layer slice 1028 -RS03: try number = 3096, reading sector 236498 --> 1 untested layers remaining -- layer slice 1029 -RS03: try number = 3097, reading sector 236499 --> 1 untested layers remaining -- layer slice 1030 -RS03: try number = 3098, reading sector 236500 --> 1 untested layers remaining -- layer slice 1031 -RS03: try number = 3099, reading sector 236501 --> 1 untested layers remaining -- layer slice 1032 -RS03: try number = 3100, reading sector 236502 --> 1 untested layers remaining -- layer slice 1033 -RS03: try number = 3101, reading sector 236503 --> 1 untested layers remaining -- layer slice 1034 -RS03: try number = 3102, reading sector 236504 --> 1 untested layers remaining -- layer slice 1035 -RS03: try number = 3103, reading sector 236505 --> 1 untested layers remaining -- layer slice 1036 -RS03: try number = 3104, reading sector 236506 --> 1 untested layers remaining -- layer slice 1037 -RS03: try number = 3105, reading sector 236507 --> 1 untested layers remaining -- layer slice 1038 -RS03: try number = 3106, reading sector 236508 --> 1 untested layers remaining -- layer slice 1039 -RS03: try number = 3107, reading sector 236509 --> 1 untested layers remaining -- layer slice 1040 -RS03: try number = 3108, reading sector 236510 --> 1 untested layers remaining -- layer slice 1041 -RS03: try number = 3109, reading sector 236511 --> 1 untested layers remaining -- layer slice 1042 -RS03: try number = 3110, reading sector 236512 --> 1 untested layers remaining -- layer slice 1043 -RS03: try number = 3111, reading sector 236513 --> 1 untested layers remaining -- layer slice 1044 -RS03: try number = 3112, reading sector 236514 --> 1 untested layers remaining -- layer slice 1045 -RS03: try number = 3113, reading sector 236515 --> 1 untested layers remaining -- layer slice 1046 -RS03: try number = 3114, reading sector 236516 --> 1 untested layers remaining -- layer slice 1047 -RS03: try number = 3115, reading sector 236517 --> 1 untested layers remaining -- layer slice 1048 -RS03: try number = 3116, reading sector 236518 --> 1 untested layers remaining -- layer slice 1049 -RS03: try number = 3117, reading sector 236519 --> 1 untested layers remaining -- layer slice 1050 -RS03: try number = 3118, reading sector 236520 --> 1 untested layers remaining -- layer slice 1051 -RS03: try number = 3119, reading sector 236521 --> 1 untested layers remaining -- layer slice 1052 -RS03: try number = 3120, reading sector 236522 --> 1 untested layers remaining -- layer slice 1053 -RS03: try number = 3121, reading sector 236523 --> 1 untested layers remaining -- layer slice 1054 -RS03: try number = 3122, reading sector 236524 --> 1 untested layers remaining -- layer slice 1055 -RS03: try number = 3123, reading sector 236525 --> 1 untested layers remaining -- layer slice 1056 -RS03: try number = 3124, reading sector 236526 --> 1 untested layers remaining -- layer slice 1057 -RS03: try number = 3125, reading sector 236527 --> 1 untested layers remaining -- layer slice 1058 -RS03: try number = 3126, reading sector 236528 --> 1 untested layers remaining -- layer slice 1059 -RS03: try number = 3127, reading sector 236529 --> 1 untested layers remaining -- layer slice 1060 -RS03: try number = 3128, reading sector 236530 --> 1 untested layers remaining -- layer slice 1061 -RS03: try number = 3129, reading sector 236531 --> 1 untested layers remaining -- layer slice 1062 -RS03: try number = 3130, reading sector 236532 --> 1 untested layers remaining -- layer slice 1063 -RS03: try number = 3131, reading sector 236533 --> 1 untested layers remaining -- layer slice 1064 -RS03: try number = 3132, reading sector 236534 --> 1 untested layers remaining -- layer slice 1065 -RS03: try number = 3133, reading sector 236535 --> 1 untested layers remaining -- layer slice 1066 -RS03: try number = 3134, reading sector 236536 --> 1 untested layers remaining -- layer slice 1067 -RS03: try number = 3135, reading sector 236537 --> 1 untested layers remaining -- layer slice 1068 -RS03: try number = 3136, reading sector 236538 --> 1 untested layers remaining -- layer slice 1069 -RS03: try number = 3137, reading sector 236539 --> 1 untested layers remaining -- layer slice 1070 -RS03: try number = 3138, reading sector 236540 --> 1 untested layers remaining -- layer slice 1071 -RS03: try number = 3139, reading sector 236541 --> 1 untested layers remaining -- layer slice 1072 -RS03: try number = 3140, reading sector 236542 --> 1 untested layers remaining -- layer slice 1073 -RS03: try number = 3141, reading sector 236543 --> 1 untested layers remaining -- layer slice 1074 -RS03: try number = 3142, reading sector 236544 --> 1 untested layers remaining -- layer slice 1075 -RS03: try number = 3143, reading sector 236545 --> 1 untested layers remaining -- layer slice 1076 -RS03: try number = 3144, reading sector 236546 --> 1 untested layers remaining -- layer slice 1077 -RS03: try number = 3145, reading sector 236547 --> 1 untested layers remaining -- layer slice 1078 -RS03: try number = 3146, reading sector 236548 --> 1 untested layers remaining -- layer slice 1079 -RS03: try number = 3147, reading sector 236549 --> 1 untested layers remaining -- layer slice 1080 -RS03: try number = 3148, reading sector 236550 --> 1 untested layers remaining -- layer slice 1081 -RS03: try number = 3149, reading sector 236551 --> 1 untested layers remaining -- layer slice 1082 -RS03: try number = 3150, reading sector 236552 --> 1 untested layers remaining -- layer slice 1083 -RS03: try number = 3151, reading sector 236553 --> 1 untested layers remaining -- layer slice 1084 -RS03: try number = 3152, reading sector 236554 --> 1 untested layers remaining -- layer slice 1085 -RS03: try number = 3153, reading sector 236555 --> 1 untested layers remaining -- layer slice 1086 -RS03: try number = 3154, reading sector 236556 --> 1 untested layers remaining -- layer slice 1087 -RS03: try number = 3155, reading sector 236557 --> 1 untested layers remaining -- layer slice 1088 -RS03: try number = 3156, reading sector 236558 --> 1 untested layers remaining -- layer slice 1089 -RS03: try number = 3157, reading sector 236559 --> 1 untested layers remaining -- layer slice 1090 -RS03: try number = 3158, reading sector 236560 --> 1 untested layers remaining -- layer slice 1091 -RS03: try number = 3159, reading sector 236561 --> 1 untested layers remaining -- layer slice 1092 -RS03: try number = 3160, reading sector 236562 --> 1 untested layers remaining -- layer slice 1093 -RS03: try number = 3161, reading sector 236563 --> 1 untested layers remaining -- layer slice 1094 -RS03: try number = 3162, reading sector 236564 --> 1 untested layers remaining -- layer slice 1095 -RS03: try number = 3163, reading sector 236565 --> 1 untested layers remaining -- layer slice 1096 -RS03: try number = 3164, reading sector 236566 --> 1 untested layers remaining -- layer slice 1097 -RS03: try number = 3165, reading sector 236567 --> 1 untested layers remaining -- layer slice 1098 -RS03: try number = 3166, reading sector 236568 --> 1 untested layers remaining -- layer slice 1099 -RS03: try number = 3167, reading sector 236569 --> 1 untested layers remaining -- layer slice 1100 -RS03: try number = 3168, reading sector 236570 --> 1 untested layers remaining -- layer slice 1101 -RS03: try number = 3169, reading sector 236571 --> 1 untested layers remaining -- layer slice 1102 -RS03: try number = 3170, reading sector 236572 --> 1 untested layers remaining -- layer slice 1103 -RS03: try number = 3171, reading sector 236573 --> 1 untested layers remaining -- layer slice 1104 -RS03: try number = 3172, reading sector 236574 --> 1 untested layers remaining -- layer slice 1105 -RS03: try number = 3173, reading sector 236575 --> 1 untested layers remaining -- layer slice 1106 -RS03: try number = 3174, reading sector 236576 --> 1 untested layers remaining -- layer slice 1107 -RS03: try number = 3175, reading sector 236577 --> 1 untested layers remaining -- layer slice 1108 -RS03: try number = 3176, reading sector 236578 --> 1 untested layers remaining -- layer slice 1109 -RS03: try number = 3177, reading sector 236579 --> 1 untested layers remaining -- layer slice 1110 -RS03: try number = 3178, reading sector 236580 --> 1 untested layers remaining -- layer slice 1111 -RS03: try number = 3179, reading sector 236581 --> 1 untested layers remaining -- layer slice 1112 -RS03: try number = 3180, reading sector 236582 --> 1 untested layers remaining -- layer slice 1113 -RS03: try number = 3181, reading sector 236583 --> 1 untested layers remaining -- layer slice 1114 -RS03: try number = 3182, reading sector 236584 --> 1 untested layers remaining -- layer slice 1115 -RS03: try number = 3183, reading sector 236585 --> 1 untested layers remaining -- layer slice 1116 -RS03: try number = 3184, reading sector 236586 --> 1 untested layers remaining -- layer slice 1117 -RS03: try number = 3185, reading sector 236587 --> 1 untested layers remaining -- layer slice 1118 -RS03: try number = 3186, reading sector 236588 --> 1 untested layers remaining -- layer slice 1119 -RS03: try number = 3187, reading sector 236589 --> 1 untested layers remaining -- layer slice 1120 -RS03: try number = 3188, reading sector 236590 --> 1 untested layers remaining -- layer slice 1121 -RS03: try number = 3189, reading sector 236591 --> 1 untested layers remaining -- layer slice 1122 -RS03: try number = 3190, reading sector 236592 --> 1 untested layers remaining -- layer slice 1123 -RS03: try number = 3191, reading sector 236593 --> 1 untested layers remaining -- layer slice 1124 -RS03: try number = 3192, reading sector 236594 --> 1 untested layers remaining -- layer slice 1125 -RS03: try number = 3193, reading sector 236595 --> 1 untested layers remaining -- layer slice 1126 -RS03: try number = 3194, reading sector 236596 --> 1 untested layers remaining -- layer slice 1127 -RS03: try number = 3195, reading sector 236597 --> 1 untested layers remaining -- layer slice 1128 -RS03: try number = 3196, reading sector 236598 --> 1 untested layers remaining -- layer slice 1129 -RS03: try number = 3197, reading sector 236599 --> 1 untested layers remaining -- layer slice 1130 -RS03: try number = 3198, reading sector 236600 --> 1 untested layers remaining -- layer slice 1131 -RS03: try number = 3199, reading sector 236601 --> 1 untested layers remaining -- layer slice 1132 -RS03: try number = 3200, reading sector 236602 --> 1 untested layers remaining -- layer slice 1133 -RS03: try number = 3201, reading sector 236603 --> 1 untested layers remaining -- layer slice 1134 -RS03: try number = 3202, reading sector 236604 --> 1 untested layers remaining -- layer slice 1135 -RS03: try number = 3203, reading sector 236605 --> 1 untested layers remaining -- layer slice 1136 -RS03: try number = 3204, reading sector 236606 --> 1 untested layers remaining -- layer slice 1137 -RS03: try number = 3205, reading sector 236607 --> 1 untested layers remaining -- layer slice 1138 -RS03: try number = 3206, reading sector 236608 --> 1 untested layers remaining -- layer slice 1139 -RS03: try number = 3207, reading sector 236609 --> 1 untested layers remaining -- layer slice 1140 -RS03: try number = 3208, reading sector 236610 --> 1 untested layers remaining -- layer slice 1141 -RS03: try number = 3209, reading sector 236611 --> 1 untested layers remaining -- layer slice 1142 -RS03: try number = 3210, reading sector 236612 --> 1 untested layers remaining -- layer slice 1143 -RS03: try number = 3211, reading sector 236613 --> 1 untested layers remaining -- layer slice 1144 -RS03: try number = 3212, reading sector 236614 --> 1 untested layers remaining -- layer slice 1145 -RS03: try number = 3213, reading sector 236615 --> 1 untested layers remaining -- layer slice 1146 -RS03: try number = 3214, reading sector 236616 --> 1 untested layers remaining -- layer slice 1147 -RS03: try number = 3215, reading sector 236617 --> 1 untested layers remaining -- layer slice 1148 -RS03: try number = 3216, reading sector 236618 --> 1 untested layers remaining -- layer slice 1149 -RS03: try number = 3217, reading sector 236619 --> 1 untested layers remaining -- layer slice 1150 -RS03: try number = 3218, reading sector 236620 --> 1 untested layers remaining -- layer slice 1151 -RS03: try number = 3219, reading sector 236621 --> 1 untested layers remaining -- layer slice 1152 -RS03: try number = 3220, reading sector 236622 --> 1 untested layers remaining -- layer slice 1153 -RS03: try number = 3221, reading sector 236623 --> 1 untested layers remaining -- layer slice 1154 -RS03: try number = 3222, reading sector 236624 --> 1 untested layers remaining -- layer slice 1155 -RS03: try number = 3223, reading sector 236625 --> 1 untested layers remaining -- layer slice 1156 -RS03: try number = 3224, reading sector 236626 --> 1 untested layers remaining -- layer slice 1157 -RS03: try number = 3225, reading sector 236627 --> 1 untested layers remaining -- layer slice 1158 -RS03: try number = 3226, reading sector 236628 --> 1 untested layers remaining -- layer slice 1159 -RS03: try number = 3227, reading sector 236629 --> 1 untested layers remaining -- layer slice 1160 -RS03: try number = 3228, reading sector 236630 --> 1 untested layers remaining -- layer slice 1161 -RS03: try number = 3229, reading sector 236631 --> 1 untested layers remaining -- layer slice 1162 -RS03: try number = 3230, reading sector 236632 --> 1 untested layers remaining -- layer slice 1163 -RS03: try number = 3231, reading sector 236633 --> 1 untested layers remaining -- layer slice 1164 -RS03: try number = 3232, reading sector 236634 --> 1 untested layers remaining -- layer slice 1165 -RS03: try number = 3233, reading sector 236635 --> 1 untested layers remaining -- layer slice 1166 -RS03: try number = 3234, reading sector 236636 --> 1 untested layers remaining -- layer slice 1167 -RS03: try number = 3235, reading sector 236637 --> 1 untested layers remaining -- layer slice 1168 -RS03: try number = 3236, reading sector 236638 --> 1 untested layers remaining -- layer slice 1169 -RS03: try number = 3237, reading sector 236639 --> 1 untested layers remaining -- layer slice 1170 -RS03: try number = 3238, reading sector 236640 --> 1 untested layers remaining -- layer slice 1171 -RS03: try number = 3239, reading sector 236641 --> 1 untested layers remaining -- layer slice 1172 -RS03: try number = 3240, reading sector 236642 --> 1 untested layers remaining -- layer slice 1173 -RS03: try number = 3241, reading sector 236643 --> 1 untested layers remaining -- layer slice 1174 -RS03: try number = 3242, reading sector 236644 --> 1 untested layers remaining -- layer slice 1175 -RS03: try number = 3243, reading sector 236645 --> 1 untested layers remaining -- layer slice 1176 -RS03: try number = 3244, reading sector 236646 --> 1 untested layers remaining -- layer slice 1177 -RS03: try number = 3245, reading sector 236647 --> 1 untested layers remaining -- layer slice 1178 -RS03: try number = 3246, reading sector 236648 --> 1 untested layers remaining -- layer slice 1179 -RS03: try number = 3247, reading sector 236649 --> 1 untested layers remaining -- layer slice 1180 -RS03: try number = 3248, reading sector 236650 --> 1 untested layers remaining -- layer slice 1181 -RS03: try number = 3249, reading sector 236651 --> 1 untested layers remaining -- layer slice 1182 -RS03: try number = 3250, reading sector 236652 --> 1 untested layers remaining -- layer slice 1183 -RS03: try number = 3251, reading sector 236653 --> 1 untested layers remaining -- layer slice 1184 -RS03: try number = 3252, reading sector 236654 --> 1 untested layers remaining -- layer slice 1185 -RS03: try number = 3253, reading sector 236655 --> 1 untested layers remaining -- layer slice 1186 -RS03: try number = 3254, reading sector 236656 --> 1 untested layers remaining -- layer slice 1187 -RS03: try number = 3255, reading sector 236657 --> 1 untested layers remaining -- layer slice 1188 -RS03: try number = 3256, reading sector 236658 --> 1 untested layers remaining -- layer slice 1189 -RS03: try number = 3257, reading sector 236659 --> 1 untested layers remaining -- layer slice 1190 -RS03: try number = 3258, reading sector 236660 --> 1 untested layers remaining -- layer slice 1191 -RS03: try number = 3259, reading sector 236661 --> 1 untested layers remaining -- layer slice 1192 -RS03: try number = 3260, reading sector 236662 --> 1 untested layers remaining -- layer slice 1193 -RS03: try number = 3261, reading sector 236663 --> 1 untested layers remaining -- layer slice 1194 -RS03: try number = 3262, reading sector 236664 --> 1 untested layers remaining -- layer slice 1195 -RS03: try number = 3263, reading sector 236665 --> 1 untested layers remaining -- layer slice 1196 -RS03: try number = 3264, reading sector 236666 --> 1 untested layers remaining -- layer slice 1197 -RS03: try number = 3265, reading sector 236667 --> 1 untested layers remaining -- layer slice 1198 -RS03: try number = 3266, reading sector 236668 --> 1 untested layers remaining -- layer slice 1199 -RS03: try number = 3267, reading sector 236669 --> 1 untested layers remaining -- layer slice 1200 -RS03: try number = 3268, reading sector 236670 --> 1 untested layers remaining -- layer slice 1201 -RS03: try number = 3269, reading sector 236671 --> 1 untested layers remaining -- layer slice 1202 -RS03: try number = 3270, reading sector 236672 --> 1 untested layers remaining -- layer slice 1203 -RS03: try number = 3271, reading sector 236673 --> 1 untested layers remaining -- layer slice 1204 -RS03: try number = 3272, reading sector 236674 --> 1 untested layers remaining -- layer slice 1205 -RS03: try number = 3273, reading sector 236675 --> 1 untested layers remaining -- layer slice 1206 -RS03: try number = 3274, reading sector 236676 --> 1 untested layers remaining -- layer slice 1207 -RS03: try number = 3275, reading sector 236677 --> 1 untested layers remaining -- layer slice 1208 -RS03: try number = 3276, reading sector 236678 --> 1 untested layers remaining -- layer slice 1209 -RS03: try number = 3277, reading sector 236679 --> 1 untested layers remaining -- layer slice 1210 -RS03: try number = 3278, reading sector 236680 --> 1 untested layers remaining -- layer slice 1211 -RS03: try number = 3279, reading sector 236681 --> 1 untested layers remaining -- layer slice 1212 -RS03: try number = 3280, reading sector 236682 --> 1 untested layers remaining -- layer slice 1213 -RS03: try number = 3281, reading sector 236683 --> 1 untested layers remaining -- layer slice 1214 -RS03: try number = 3282, reading sector 236684 --> 1 untested layers remaining -- layer slice 1215 -RS03: try number = 3283, reading sector 236685 --> 1 untested layers remaining -- layer slice 1216 -RS03: try number = 3284, reading sector 236686 --> 1 untested layers remaining -- layer slice 1217 -RS03: try number = 3285, reading sector 236687 --> 1 untested layers remaining -- layer slice 1218 -RS03: try number = 3286, reading sector 236688 --> 1 untested layers remaining -- layer slice 1219 -RS03: try number = 3287, reading sector 236689 --> 1 untested layers remaining -- layer slice 1220 -RS03: try number = 3288, reading sector 236690 --> 1 untested layers remaining -- layer slice 1221 -RS03: try number = 3289, reading sector 236691 --> 1 untested layers remaining -- layer slice 1222 -RS03: try number = 3290, reading sector 236692 --> 1 untested layers remaining -- layer slice 1223 -RS03: try number = 3291, reading sector 236693 --> 1 untested layers remaining -- layer slice 1224 -RS03: try number = 3292, reading sector 236694 --> 1 untested layers remaining -- layer slice 1225 -RS03: try number = 3293, reading sector 236695 --> 1 untested layers remaining -- layer slice 1226 -RS03: try number = 3294, reading sector 236696 --> 1 untested layers remaining -- layer slice 1227 -RS03: try number = 3295, reading sector 236697 --> 1 untested layers remaining -- layer slice 1228 -RS03: try number = 3296, reading sector 236698 --> 1 untested layers remaining -- layer slice 1229 -RS03: try number = 3297, reading sector 236699 --> 1 untested layers remaining -- layer slice 1230 -RS03: try number = 3298, reading sector 236700 --> 1 untested layers remaining -- layer slice 1231 -RS03: try number = 3299, reading sector 236701 --> 1 untested layers remaining -- layer slice 1232 -RS03: try number = 3300, reading sector 236702 --> 1 untested layers remaining -- layer slice 1233 -RS03: try number = 3301, reading sector 236703 --> 1 untested layers remaining -- layer slice 1234 -RS03: try number = 3302, reading sector 236704 --> 1 untested layers remaining -- layer slice 1235 -RS03: try number = 3303, reading sector 236705 --> 1 untested layers remaining -- layer slice 1236 -RS03: try number = 3304, reading sector 236706 --> 1 untested layers remaining -- layer slice 1237 -RS03: try number = 3305, reading sector 236707 --> 1 untested layers remaining -- layer slice 1238 -RS03: try number = 3306, reading sector 236708 --> 1 untested layers remaining -- layer slice 1239 -RS03: try number = 3307, reading sector 236709 --> 1 untested layers remaining -- layer slice 1240 -RS03: try number = 3308, reading sector 236710 --> 1 untested layers remaining -- layer slice 1241 -RS03: try number = 3309, reading sector 236711 --> 1 untested layers remaining -- layer slice 1242 -RS03: try number = 3310, reading sector 236712 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03i_random_image b/regtest/database/RS03i_random_image index 5a52010f..4479271a 100644 --- a/regtest/database/RS03i_random_image +++ b/regtest/database/RS03i_random_image @@ -305,343 +305,6 @@ RS03: try number = 162, reading sector 345205 RS03: try number = 163, reading sector 346614 RS03: try number = 164, reading sector 348023 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 1408 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 118272 -RS03: try number = 166, reading sector 119680 -RS03: try number = 167, reading sector 121088 -RS03: try number = 168, reading sector 122496 -RS03: try number = 169, reading sector 123904 -RS03: try number = 170, reading sector 125312 -RS03: try number = 171, reading sector 126720 -RS03: try number = 172, reading sector 128128 -RS03: try number = 173, reading sector 129536 -RS03: try number = 174, reading sector 130944 -RS03: try number = 175, reading sector 132352 -RS03: try number = 176, reading sector 133760 -RS03: try number = 177, reading sector 135168 -RS03: try number = 178, reading sector 136576 -RS03: try number = 179, reading sector 137984 -RS03: try number = 180, reading sector 139392 -RS03: try number = 181, reading sector 140800 -RS03: try number = 182, reading sector 142208 -RS03: try number = 183, reading sector 143616 -RS03: try number = 184, reading sector 145024 -RS03: try number = 185, reading sector 146432 -RS03: try number = 186, reading sector 147840 -RS03: try number = 187, reading sector 149248 -RS03: try number = 188, reading sector 150656 -RS03: try number = 189, reading sector 152064 -RS03: try number = 190, reading sector 153472 -RS03: try number = 191, reading sector 154880 -RS03: try number = 192, reading sector 156288 -RS03: try number = 193, reading sector 157696 -RS03: try number = 194, reading sector 159104 -RS03: try number = 195, reading sector 160512 -RS03: try number = 196, reading sector 161920 -RS03: try number = 197, reading sector 163328 -RS03: try number = 198, reading sector 164736 -RS03: try number = 199, reading sector 166144 -RS03: try number = 200, reading sector 167552 -RS03: try number = 201, reading sector 168960 -RS03: try number = 202, reading sector 170368 -RS03: try number = 203, reading sector 171776 -RS03: try number = 204, reading sector 173184 -RS03: try number = 205, reading sector 174592 -RS03: try number = 206, reading sector 176000 -RS03: try number = 207, reading sector 177408 -RS03: try number = 208, reading sector 178816 -RS03: try number = 209, reading sector 180224 -RS03: try number = 210, reading sector 181632 -RS03: try number = 211, reading sector 183040 -RS03: try number = 212, reading sector 184448 -RS03: try number = 213, reading sector 185856 -RS03: try number = 214, reading sector 187264 -RS03: try number = 215, reading sector 188672 -RS03: try number = 216, reading sector 190080 -RS03: try number = 217, reading sector 191488 -RS03: try number = 218, reading sector 192896 -RS03: try number = 219, reading sector 194304 -RS03: try number = 220, reading sector 195712 -RS03: try number = 221, reading sector 197120 -RS03: try number = 222, reading sector 198528 -RS03: try number = 223, reading sector 199936 -RS03: try number = 224, reading sector 201344 -RS03: try number = 225, reading sector 202752 -RS03: try number = 226, reading sector 204160 -RS03: try number = 227, reading sector 205568 -RS03: try number = 228, reading sector 206976 -RS03: try number = 229, reading sector 208384 -RS03: try number = 230, reading sector 209792 -RS03: try number = 231, reading sector 211200 -RS03: try number = 232, reading sector 212608 -RS03: try number = 233, reading sector 214016 -RS03: try number = 234, reading sector 215424 -RS03: try number = 235, reading sector 216832 -RS03: try number = 236, reading sector 218240 -RS03: try number = 237, reading sector 219648 -RS03: try number = 238, reading sector 221056 -RS03: try number = 239, reading sector 222464 -RS03: try number = 240, reading sector 223872 -RS03: try number = 241, reading sector 225280 -RS03: try number = 242, reading sector 226688 -RS03: try number = 243, reading sector 228096 -RS03: try number = 244, reading sector 229504 -RS03: try number = 245, reading sector 230912 -RS03: try number = 246, reading sector 232320 -RS03: try number = 247, reading sector 233728 -RS03: try number = 248, reading sector 235136 -RS03: try number = 249, reading sector 236544 -RS03: try number = 250, reading sector 237952 -RS03: try number = 251, reading sector 239360 -RS03: try number = 252, reading sector 240768 -RS03: try number = 253, reading sector 242176 -RS03: try number = 254, reading sector 243584 -RS03: try number = 255, reading sector 244992 -RS03: try number = 256, reading sector 246400 -RS03: try number = 257, reading sector 247808 -RS03: try number = 258, reading sector 249216 -RS03: try number = 259, reading sector 250624 -RS03: try number = 260, reading sector 252032 -RS03: try number = 261, reading sector 253440 -RS03: try number = 262, reading sector 254848 -RS03: try number = 263, reading sector 256256 -RS03: try number = 264, reading sector 257664 -RS03: try number = 265, reading sector 259072 -RS03: try number = 266, reading sector 260480 -RS03: try number = 267, reading sector 261888 -RS03: try number = 268, reading sector 263296 -RS03: try number = 269, reading sector 264704 -RS03: try number = 270, reading sector 266112 -RS03: try number = 271, reading sector 267520 -RS03: try number = 272, reading sector 268928 -RS03: try number = 273, reading sector 270336 -RS03: try number = 274, reading sector 271744 -RS03: try number = 275, reading sector 273152 -RS03: try number = 276, reading sector 274560 -RS03: try number = 277, reading sector 275968 -RS03: try number = 278, reading sector 277376 -RS03: try number = 279, reading sector 278784 -RS03: try number = 280, reading sector 280192 -RS03: try number = 281, reading sector 281600 -RS03: try number = 282, reading sector 283008 -RS03: try number = 283, reading sector 284416 -RS03: try number = 284, reading sector 285824 -RS03: try number = 285, reading sector 287232 -RS03: try number = 286, reading sector 288640 -RS03: try number = 287, reading sector 290048 -RS03: try number = 288, reading sector 291456 -RS03: try number = 289, reading sector 292864 -RS03: try number = 290, reading sector 294272 -RS03: try number = 291, reading sector 295680 -RS03: try number = 292, reading sector 297088 -RS03: try number = 293, reading sector 298496 -RS03: try number = 294, reading sector 299904 -RS03: try number = 295, reading sector 301312 -RS03: try number = 296, reading sector 302720 -RS03: try number = 297, reading sector 304128 -RS03: try number = 298, reading sector 305536 -RS03: try number = 299, reading sector 306944 -RS03: try number = 300, reading sector 308352 -RS03: try number = 301, reading sector 309760 -RS03: try number = 302, reading sector 311168 -RS03: try number = 303, reading sector 312576 -RS03: try number = 304, reading sector 313984 -RS03: try number = 305, reading sector 315392 -RS03: try number = 306, reading sector 316800 -RS03: try number = 307, reading sector 318208 -RS03: try number = 308, reading sector 319616 -RS03: try number = 309, reading sector 321024 -RS03: try number = 310, reading sector 322432 -RS03: try number = 311, reading sector 323840 -RS03: try number = 312, reading sector 325248 -RS03: try number = 313, reading sector 326656 -RS03: try number = 314, reading sector 328064 -RS03: try number = 315, reading sector 329472 -RS03: try number = 316, reading sector 330880 -RS03: try number = 317, reading sector 332288 -RS03: try number = 318, reading sector 333696 -RS03: try number = 319, reading sector 335104 -RS03: try number = 320, reading sector 336512 -RS03: try number = 321, reading sector 337920 -RS03: try number = 322, reading sector 339328 -RS03: try number = 323, reading sector 340736 -RS03: try number = 324, reading sector 342144 -RS03: try number = 325, reading sector 343552 -RS03: try number = 326, reading sector 344960 -RS03: try number = 327, reading sector 346368 -RS03: try number = 328, reading sector 347776 -** All layers tested -> no RS03 data found -.. trying layer size 1410 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 118440 -RS03: try number = 330, reading sector 119850 -RS03: try number = 331, reading sector 121260 -RS03: try number = 332, reading sector 122670 -RS03: try number = 333, reading sector 124080 -RS03: try number = 334, reading sector 125490 -RS03: try number = 335, reading sector 126900 -RS03: try number = 336, reading sector 128310 -RS03: try number = 337, reading sector 129720 -RS03: try number = 338, reading sector 131130 -RS03: try number = 339, reading sector 132540 -RS03: try number = 340, reading sector 133950 -RS03: try number = 341, reading sector 135360 -RS03: try number = 342, reading sector 136770 -RS03: try number = 343, reading sector 138180 -RS03: try number = 344, reading sector 139590 -RS03: try number = 345, reading sector 141000 -RS03: try number = 346, reading sector 142410 -RS03: try number = 347, reading sector 143820 -RS03: try number = 348, reading sector 145230 -RS03: try number = 349, reading sector 146640 -RS03: try number = 350, reading sector 148050 -RS03: try number = 351, reading sector 149460 -RS03: try number = 352, reading sector 150870 -RS03: try number = 353, reading sector 152280 -RS03: try number = 354, reading sector 153690 -RS03: try number = 355, reading sector 155100 -RS03: try number = 356, reading sector 156510 -RS03: try number = 357, reading sector 157920 -RS03: try number = 358, reading sector 159330 -RS03: try number = 359, reading sector 160740 -RS03: try number = 360, reading sector 162150 -RS03: try number = 361, reading sector 163560 -RS03: try number = 362, reading sector 164970 -RS03: try number = 363, reading sector 166380 -RS03: try number = 364, reading sector 167790 -RS03: try number = 365, reading sector 169200 -RS03: try number = 366, reading sector 170610 -RS03: try number = 367, reading sector 172020 -RS03: try number = 368, reading sector 173430 -RS03: try number = 369, reading sector 174840 -RS03: try number = 370, reading sector 176250 -RS03: try number = 371, reading sector 177660 -RS03: try number = 372, reading sector 179070 -RS03: try number = 373, reading sector 180480 -RS03: try number = 374, reading sector 181890 -RS03: try number = 375, reading sector 183300 -RS03: try number = 376, reading sector 184710 -RS03: try number = 377, reading sector 186120 -RS03: try number = 378, reading sector 187530 -RS03: try number = 379, reading sector 188940 -RS03: try number = 380, reading sector 190350 -RS03: try number = 381, reading sector 191760 -RS03: try number = 382, reading sector 193170 -RS03: try number = 383, reading sector 194580 -RS03: try number = 384, reading sector 195990 -RS03: try number = 385, reading sector 197400 -RS03: try number = 386, reading sector 198810 -RS03: try number = 387, reading sector 200220 -RS03: try number = 388, reading sector 201630 -RS03: try number = 389, reading sector 203040 -RS03: try number = 390, reading sector 204450 -RS03: try number = 391, reading sector 205860 -RS03: try number = 392, reading sector 207270 -RS03: try number = 393, reading sector 208680 -RS03: try number = 394, reading sector 210090 -RS03: try number = 395, reading sector 211500 -RS03: try number = 396, reading sector 212910 -RS03: try number = 397, reading sector 214320 -RS03: try number = 398, reading sector 215730 -RS03: try number = 399, reading sector 217140 -RS03: try number = 400, reading sector 218550 -RS03: try number = 401, reading sector 219960 -RS03: try number = 402, reading sector 221370 -RS03: try number = 403, reading sector 222780 -RS03: try number = 404, reading sector 224190 -RS03: try number = 405, reading sector 225600 -RS03: try number = 406, reading sector 227010 -RS03: try number = 407, reading sector 228420 -RS03: try number = 408, reading sector 229830 -RS03: try number = 409, reading sector 231240 -RS03: try number = 410, reading sector 232650 -RS03: try number = 411, reading sector 234060 -RS03: try number = 412, reading sector 235470 -RS03: try number = 413, reading sector 236880 -RS03: try number = 414, reading sector 238290 -RS03: try number = 415, reading sector 239700 -RS03: try number = 416, reading sector 241110 -RS03: try number = 417, reading sector 242520 -RS03: try number = 418, reading sector 243930 -RS03: try number = 419, reading sector 245340 -RS03: try number = 420, reading sector 246750 -RS03: try number = 421, reading sector 248160 -RS03: try number = 422, reading sector 249570 -RS03: try number = 423, reading sector 250980 -RS03: try number = 424, reading sector 252390 -RS03: try number = 425, reading sector 253800 -RS03: try number = 426, reading sector 255210 -RS03: try number = 427, reading sector 256620 -RS03: try number = 428, reading sector 258030 -RS03: try number = 429, reading sector 259440 -RS03: try number = 430, reading sector 260850 -RS03: try number = 431, reading sector 262260 -RS03: try number = 432, reading sector 263670 -RS03: try number = 433, reading sector 265080 -RS03: try number = 434, reading sector 266490 -RS03: try number = 435, reading sector 267900 -RS03: try number = 436, reading sector 269310 -RS03: try number = 437, reading sector 270720 -RS03: try number = 438, reading sector 272130 -RS03: try number = 439, reading sector 273540 -RS03: try number = 440, reading sector 274950 -RS03: try number = 441, reading sector 276360 -RS03: try number = 442, reading sector 277770 -RS03: try number = 443, reading sector 279180 -RS03: try number = 444, reading sector 280590 -RS03: try number = 445, reading sector 282000 -RS03: try number = 446, reading sector 283410 -RS03: try number = 447, reading sector 284820 -RS03: try number = 448, reading sector 286230 -RS03: try number = 449, reading sector 287640 -RS03: try number = 450, reading sector 289050 -RS03: try number = 451, reading sector 290460 -RS03: try number = 452, reading sector 291870 -RS03: try number = 453, reading sector 293280 -RS03: try number = 454, reading sector 294690 -RS03: try number = 455, reading sector 296100 -RS03: try number = 456, reading sector 297510 -RS03: try number = 457, reading sector 298920 -RS03: try number = 458, reading sector 300330 -RS03: try number = 459, reading sector 301740 -RS03: try number = 460, reading sector 303150 -RS03: try number = 461, reading sector 304560 -RS03: try number = 462, reading sector 305970 -RS03: try number = 463, reading sector 307380 -RS03: try number = 464, reading sector 308790 -RS03: try number = 465, reading sector 310200 -RS03: try number = 466, reading sector 311610 -RS03: try number = 467, reading sector 313020 -RS03: try number = 468, reading sector 314430 -RS03: try number = 469, reading sector 315840 -RS03: try number = 470, reading sector 317250 -RS03: try number = 471, reading sector 318660 -RS03: try number = 472, reading sector 320070 -RS03: try number = 473, reading sector 321480 -RS03: try number = 474, reading sector 322890 -RS03: try number = 475, reading sector 324300 -RS03: try number = 476, reading sector 325710 -RS03: try number = 477, reading sector 327120 -RS03: try number = 478, reading sector 328530 -RS03: try number = 479, reading sector 329940 -RS03: try number = 480, reading sector 331350 -RS03: try number = 481, reading sector 332760 -RS03: try number = 482, reading sector 334170 -RS03: try number = 483, reading sector 335580 -RS03: try number = 484, reading sector 336990 -RS03: try number = 485, reading sector 338400 -RS03: try number = 486, reading sector 339810 -RS03: try number = 487, reading sector 341220 -RS03: try number = 488, reading sector 342630 -RS03: try number = 489, reading sector 344040 -RS03: try number = 490, reading sector 345450 -RS03: try number = 491, reading sector 346860 -RS03: try number = 492, reading sector 348270 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/regtest/database/RS03i_scan_missing_header_no_crcsec b/regtest/database/RS03i_scan_missing_header_no_crcsec index 1e23e6aa..106c7455 100644 --- a/regtest/database/RS03i_scan_missing_header_no_crcsec +++ b/regtest/database/RS03i_scan_missing_header_no_crcsec @@ -4540,1855 +4540,6 @@ RS03: try number = 1571, reading sector 236710 RS03: try number = 1572, reading sector 236711 -> 1 untested layers remaining -- layer size 1409 exhausted; 1 layers remain untested -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 1407 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1573, reading sector 118188 -RS03: try number = 1574, reading sector 119595 -RS03: try number = 1575, reading sector 121002 -RS03: try number = 1576, reading sector 122409 -RS03: try number = 1577, reading sector 123816 -RS03: try number = 1578, reading sector 125223 -RS03: try number = 1579, reading sector 126630 -RS03: try number = 1580, reading sector 128037 -RS03: try number = 1581, reading sector 129444 -RS03: try number = 1582, reading sector 130851 -RS03: try number = 1583, reading sector 132258 -RS03: try number = 1584, reading sector 133665 -RS03: try number = 1585, reading sector 135072 -RS03: try number = 1586, reading sector 136479 -RS03: try number = 1587, reading sector 137886 -RS03: try number = 1588, reading sector 139293 -RS03: try number = 1589, reading sector 140700 -RS03: try number = 1590, reading sector 142107 -RS03: try number = 1591, reading sector 143514 -RS03: try number = 1592, reading sector 144921 -RS03: try number = 1593, reading sector 146328 -RS03: try number = 1594, reading sector 147735 -RS03: try number = 1595, reading sector 149142 -RS03: try number = 1596, reading sector 150549 -RS03: try number = 1597, reading sector 151956 -RS03: try number = 1598, reading sector 153363 -RS03: try number = 1599, reading sector 154770 -RS03: try number = 1600, reading sector 156177 -RS03: try number = 1601, reading sector 157584 -RS03: try number = 1602, reading sector 158991 -RS03: try number = 1603, reading sector 160398 -RS03: try number = 1604, reading sector 161805 -RS03: try number = 1605, reading sector 163212 -RS03: try number = 1606, reading sector 164619 -RS03: try number = 1607, reading sector 166026 -RS03: try number = 1608, reading sector 167433 -RS03: try number = 1609, reading sector 168840 -RS03: try number = 1610, reading sector 170247 -RS03: try number = 1611, reading sector 171654 -RS03: try number = 1612, reading sector 173061 -RS03: try number = 1613, reading sector 174468 -RS03: try number = 1614, reading sector 175875 -RS03: try number = 1615, reading sector 177282 -RS03: try number = 1616, reading sector 178689 -RS03: try number = 1617, reading sector 180096 -RS03: try number = 1618, reading sector 181503 -RS03: try number = 1619, reading sector 182910 -RS03: try number = 1620, reading sector 184317 -RS03: try number = 1621, reading sector 185724 -RS03: try number = 1622, reading sector 187131 -RS03: try number = 1623, reading sector 188538 -RS03: try number = 1624, reading sector 189945 -RS03: try number = 1625, reading sector 191352 -RS03: try number = 1626, reading sector 192759 -RS03: try number = 1627, reading sector 194166 -RS03: try number = 1628, reading sector 195573 -RS03: try number = 1629, reading sector 196980 -RS03: try number = 1630, reading sector 198387 -RS03: try number = 1631, reading sector 199794 -RS03: try number = 1632, reading sector 201201 -RS03: try number = 1633, reading sector 202608 -RS03: try number = 1634, reading sector 204015 -RS03: try number = 1635, reading sector 205422 -RS03: try number = 1636, reading sector 206829 -RS03: try number = 1637, reading sector 208236 -RS03: try number = 1638, reading sector 209643 -RS03: try number = 1639, reading sector 211050 -RS03: try number = 1640, reading sector 212457 -RS03: try number = 1641, reading sector 213864 -RS03: try number = 1642, reading sector 215271 -RS03: try number = 1643, reading sector 216678 -RS03: try number = 1644, reading sector 218085 -RS03: try number = 1645, reading sector 219492 -RS03: try number = 1646, reading sector 220899 -RS03: try number = 1647, reading sector 222306 -RS03: try number = 1648, reading sector 223713 -RS03: try number = 1649, reading sector 225120 -RS03: try number = 1650, reading sector 226527 -RS03: try number = 1651, reading sector 227934 -RS03: try number = 1652, reading sector 229341 -RS03: try number = 1653, reading sector 230748 -RS03: try number = 1654, reading sector 232155 -RS03: try number = 1655, reading sector 233562 -RS03: try number = 1656, reading sector 234969 -RS03: try number = 1657, reading sector 236376 -RS03: try number = 1658, reading sector 237783 -RS03: try number = 1659, reading sector 239190 -RS03: try number = 1660, reading sector 240597 -RS03: try number = 1661, reading sector 242004 -RS03: try number = 1662, reading sector 243411 -RS03: try number = 1663, reading sector 244818 -RS03: try number = 1664, reading sector 246225 -RS03: try number = 1665, reading sector 247632 -RS03: try number = 1666, reading sector 249039 -RS03: try number = 1667, reading sector 250446 -RS03: try number = 1668, reading sector 251853 -RS03: try number = 1669, reading sector 253260 -RS03: try number = 1670, reading sector 254667 -RS03: try number = 1671, reading sector 256074 -RS03: try number = 1672, reading sector 257481 -RS03: try number = 1673, reading sector 258888 -RS03: try number = 1674, reading sector 260295 -RS03: try number = 1675, reading sector 261702 -RS03: try number = 1676, reading sector 263109 -RS03: try number = 1677, reading sector 264516 -RS03: try number = 1678, reading sector 265923 -RS03: try number = 1679, reading sector 267330 -RS03: try number = 1680, reading sector 268737 -RS03: try number = 1681, reading sector 270144 -RS03: try number = 1682, reading sector 271551 -RS03: try number = 1683, reading sector 272958 -RS03: try number = 1684, reading sector 274365 -RS03: try number = 1685, reading sector 275772 -RS03: try number = 1686, reading sector 277179 -RS03: try number = 1687, reading sector 278586 -RS03: try number = 1688, reading sector 279993 -RS03: try number = 1689, reading sector 281400 -RS03: try number = 1690, reading sector 282807 -RS03: try number = 1691, reading sector 284214 -RS03: try number = 1692, reading sector 285621 -RS03: try number = 1693, reading sector 287028 -RS03: try number = 1694, reading sector 288435 -RS03: try number = 1695, reading sector 289842 -RS03: try number = 1696, reading sector 291249 -RS03: try number = 1697, reading sector 292656 -RS03: try number = 1698, reading sector 294063 -RS03: try number = 1699, reading sector 295470 -RS03: try number = 1700, reading sector 296877 -RS03: try number = 1701, reading sector 298284 -RS03: try number = 1702, reading sector 299691 -RS03: try number = 1703, reading sector 301098 -RS03: try number = 1704, reading sector 302505 -RS03: try number = 1705, reading sector 303912 -RS03: try number = 1706, reading sector 305319 -RS03: try number = 1707, reading sector 306726 -RS03: try number = 1708, reading sector 308133 -RS03: try number = 1709, reading sector 309540 -RS03: try number = 1710, reading sector 310947 -RS03: try number = 1711, reading sector 312354 -RS03: try number = 1712, reading sector 313761 -RS03: try number = 1713, reading sector 315168 -RS03: try number = 1714, reading sector 316575 -RS03: try number = 1715, reading sector 317982 -RS03: try number = 1716, reading sector 319389 -RS03: try number = 1717, reading sector 320796 -RS03: try number = 1718, reading sector 322203 -RS03: try number = 1719, reading sector 323610 -RS03: try number = 1720, reading sector 325017 -RS03: try number = 1721, reading sector 326424 -RS03: try number = 1722, reading sector 327831 -RS03: try number = 1723, reading sector 329238 -RS03: try number = 1724, reading sector 330645 -RS03: try number = 1725, reading sector 332052 -RS03: try number = 1726, reading sector 333459 -RS03: try number = 1727, reading sector 334866 -RS03: try number = 1728, reading sector 336273 -RS03: try number = 1729, reading sector 337680 -RS03: try number = 1730, reading sector 339087 -RS03: try number = 1731, reading sector 340494 -RS03: try number = 1732, reading sector 341901 -RS03: try number = 1733, reading sector 343308 -RS03: try number = 1734, reading sector 344715 -RS03: try number = 1735, reading sector 346122 -RS03: try number = 1736, reading sector 347529 --> 1 untested layers remaining -- layer slice 1 -RS03: try number = 1737, reading sector 236377 --> 1 untested layers remaining -- layer slice 2 -RS03: try number = 1738, reading sector 236378 --> 1 untested layers remaining -- layer slice 3 -RS03: try number = 1739, reading sector 236379 --> 1 untested layers remaining -- layer slice 4 -RS03: try number = 1740, reading sector 236380 --> 1 untested layers remaining -- layer slice 5 -RS03: try number = 1741, reading sector 236381 --> 1 untested layers remaining -- layer slice 6 -RS03: try number = 1742, reading sector 236382 --> 1 untested layers remaining -- layer slice 7 -RS03: try number = 1743, reading sector 236383 --> 1 untested layers remaining -- layer slice 8 -RS03: try number = 1744, reading sector 236384 --> 1 untested layers remaining -- layer slice 9 -RS03: try number = 1745, reading sector 236385 --> 1 untested layers remaining -- layer slice 10 -RS03: try number = 1746, reading sector 236386 --> 1 untested layers remaining -- layer slice 11 -RS03: try number = 1747, reading sector 236387 --> 1 untested layers remaining -- layer slice 12 -RS03: try number = 1748, reading sector 236388 --> 1 untested layers remaining -- layer slice 13 -RS03: try number = 1749, reading sector 236389 --> 1 untested layers remaining -- layer slice 14 -RS03: try number = 1750, reading sector 236390 --> 1 untested layers remaining -- layer slice 15 -RS03: try number = 1751, reading sector 236391 --> 1 untested layers remaining -- layer slice 16 -RS03: try number = 1752, reading sector 236392 --> 1 untested layers remaining -- layer slice 17 -RS03: try number = 1753, reading sector 236393 --> 1 untested layers remaining -- layer slice 18 -RS03: try number = 1754, reading sector 236394 --> 1 untested layers remaining -- layer slice 19 -RS03: try number = 1755, reading sector 236395 --> 1 untested layers remaining -- layer slice 20 -RS03: try number = 1756, reading sector 236396 --> 1 untested layers remaining -- layer slice 21 -RS03: try number = 1757, reading sector 236397 --> 1 untested layers remaining -- layer slice 22 -RS03: try number = 1758, reading sector 236398 --> 1 untested layers remaining -- layer slice 23 -RS03: try number = 1759, reading sector 236399 --> 1 untested layers remaining -- layer slice 24 -RS03: try number = 1760, reading sector 236400 --> 1 untested layers remaining -- layer slice 25 -RS03: try number = 1761, reading sector 236401 --> 1 untested layers remaining -- layer slice 26 -RS03: try number = 1762, reading sector 236402 --> 1 untested layers remaining -- layer slice 27 -RS03: try number = 1763, reading sector 236403 --> 1 untested layers remaining -- layer slice 28 -RS03: try number = 1764, reading sector 236404 --> 1 untested layers remaining -- layer slice 29 -RS03: try number = 1765, reading sector 236405 --> 1 untested layers remaining -- layer slice 30 -RS03: try number = 1766, reading sector 236406 --> 1 untested layers remaining -- layer slice 31 -RS03: try number = 1767, reading sector 236407 --> 1 untested layers remaining -- layer slice 32 -RS03: try number = 1768, reading sector 236408 --> 1 untested layers remaining -- layer slice 33 -RS03: try number = 1769, reading sector 236409 --> 1 untested layers remaining -- layer slice 34 -RS03: try number = 1770, reading sector 236410 --> 1 untested layers remaining -- layer slice 35 -RS03: try number = 1771, reading sector 236411 --> 1 untested layers remaining -- layer slice 36 -RS03: try number = 1772, reading sector 236412 --> 1 untested layers remaining -- layer slice 37 -RS03: try number = 1773, reading sector 236413 --> 1 untested layers remaining -- layer slice 38 -RS03: try number = 1774, reading sector 236414 --> 1 untested layers remaining -- layer slice 39 -RS03: try number = 1775, reading sector 236415 --> 1 untested layers remaining -- layer slice 40 -RS03: try number = 1776, reading sector 236416 --> 1 untested layers remaining -- layer slice 41 -RS03: try number = 1777, reading sector 236417 --> 1 untested layers remaining -- layer slice 42 -RS03: try number = 1778, reading sector 236418 --> 1 untested layers remaining -- layer slice 43 -RS03: try number = 1779, reading sector 236419 --> 1 untested layers remaining -- layer slice 44 -RS03: try number = 1780, reading sector 236420 --> 1 untested layers remaining -- layer slice 45 -RS03: try number = 1781, reading sector 236421 --> 1 untested layers remaining -- layer slice 46 -RS03: try number = 1782, reading sector 236422 --> 1 untested layers remaining -- layer slice 47 -RS03: try number = 1783, reading sector 236423 --> 1 untested layers remaining -- layer slice 48 -RS03: try number = 1784, reading sector 236424 --> 1 untested layers remaining -- layer slice 49 -RS03: try number = 1785, reading sector 236425 --> 1 untested layers remaining -- layer slice 50 -RS03: try number = 1786, reading sector 236426 --> 1 untested layers remaining -- layer slice 51 -RS03: try number = 1787, reading sector 236427 --> 1 untested layers remaining -- layer slice 52 -RS03: try number = 1788, reading sector 236428 --> 1 untested layers remaining -- layer slice 53 -RS03: try number = 1789, reading sector 236429 --> 1 untested layers remaining -- layer slice 54 -RS03: try number = 1790, reading sector 236430 --> 1 untested layers remaining -- layer slice 55 -RS03: try number = 1791, reading sector 236431 --> 1 untested layers remaining -- layer slice 56 -RS03: try number = 1792, reading sector 236432 --> 1 untested layers remaining -- layer slice 57 -RS03: try number = 1793, reading sector 236433 --> 1 untested layers remaining -- layer slice 58 -RS03: try number = 1794, reading sector 236434 --> 1 untested layers remaining -- layer slice 59 -RS03: try number = 1795, reading sector 236435 --> 1 untested layers remaining -- layer slice 60 -RS03: try number = 1796, reading sector 236436 --> 1 untested layers remaining -- layer slice 61 -RS03: try number = 1797, reading sector 236437 --> 1 untested layers remaining -- layer slice 62 -RS03: try number = 1798, reading sector 236438 --> 1 untested layers remaining -- layer slice 63 -RS03: try number = 1799, reading sector 236439 --> 1 untested layers remaining -- layer slice 64 -RS03: try number = 1800, reading sector 236440 --> 1 untested layers remaining -- layer slice 65 -RS03: try number = 1801, reading sector 236441 --> 1 untested layers remaining -- layer slice 66 -RS03: try number = 1802, reading sector 236442 --> 1 untested layers remaining -- layer slice 67 -RS03: try number = 1803, reading sector 236443 --> 1 untested layers remaining -- layer slice 68 -RS03: try number = 1804, reading sector 236444 --> 1 untested layers remaining -- layer slice 69 -RS03: try number = 1805, reading sector 236445 --> 1 untested layers remaining -- layer slice 70 -RS03: try number = 1806, reading sector 236446 --> 1 untested layers remaining -- layer slice 71 -RS03: try number = 1807, reading sector 236447 --> 1 untested layers remaining -- layer slice 72 -RS03: try number = 1808, reading sector 236448 --> 1 untested layers remaining -- layer slice 73 -RS03: try number = 1809, reading sector 236449 --> 1 untested layers remaining -- layer slice 74 -RS03: try number = 1810, reading sector 236450 --> 1 untested layers remaining -- layer slice 75 -RS03: try number = 1811, reading sector 236451 --> 1 untested layers remaining -- layer slice 76 -RS03: try number = 1812, reading sector 236452 --> 1 untested layers remaining -- layer slice 77 -RS03: try number = 1813, reading sector 236453 --> 1 untested layers remaining -- layer slice 78 -RS03: try number = 1814, reading sector 236454 --> 1 untested layers remaining -- layer slice 79 -RS03: try number = 1815, reading sector 236455 --> 1 untested layers remaining -- layer slice 80 -RS03: try number = 1816, reading sector 236456 --> 1 untested layers remaining -- layer slice 81 -RS03: try number = 1817, reading sector 236457 --> 1 untested layers remaining -- layer slice 82 -RS03: try number = 1818, reading sector 236458 --> 1 untested layers remaining -- layer slice 83 -RS03: try number = 1819, reading sector 236459 --> 1 untested layers remaining -- layer slice 84 -RS03: try number = 1820, reading sector 236460 --> 1 untested layers remaining -- layer slice 85 -RS03: try number = 1821, reading sector 236461 --> 1 untested layers remaining -- layer slice 86 -RS03: try number = 1822, reading sector 236462 --> 1 untested layers remaining -- layer slice 87 -RS03: try number = 1823, reading sector 236463 --> 1 untested layers remaining -- layer slice 88 -RS03: try number = 1824, reading sector 236464 --> 1 untested layers remaining -- layer slice 89 -RS03: try number = 1825, reading sector 236465 --> 1 untested layers remaining -- layer slice 90 -RS03: try number = 1826, reading sector 236466 --> 1 untested layers remaining -- layer slice 91 -RS03: try number = 1827, reading sector 236467 --> 1 untested layers remaining -- layer slice 92 -RS03: try number = 1828, reading sector 236468 --> 1 untested layers remaining -- layer slice 93 -RS03: try number = 1829, reading sector 236469 --> 1 untested layers remaining -- layer slice 94 -RS03: try number = 1830, reading sector 236470 --> 1 untested layers remaining -- layer slice 95 -RS03: try number = 1831, reading sector 236471 --> 1 untested layers remaining -- layer slice 96 -RS03: try number = 1832, reading sector 236472 --> 1 untested layers remaining -- layer slice 97 -RS03: try number = 1833, reading sector 236473 --> 1 untested layers remaining -- layer slice 98 -RS03: try number = 1834, reading sector 236474 --> 1 untested layers remaining -- layer slice 99 -RS03: try number = 1835, reading sector 236475 --> 1 untested layers remaining -- layer slice 100 -RS03: try number = 1836, reading sector 236476 --> 1 untested layers remaining -- layer slice 101 -RS03: try number = 1837, reading sector 236477 --> 1 untested layers remaining -- layer slice 102 -RS03: try number = 1838, reading sector 236478 --> 1 untested layers remaining -- layer slice 103 -RS03: try number = 1839, reading sector 236479 --> 1 untested layers remaining -- layer slice 104 -RS03: try number = 1840, reading sector 236480 --> 1 untested layers remaining -- layer slice 105 -RS03: try number = 1841, reading sector 236481 --> 1 untested layers remaining -- layer slice 106 -RS03: try number = 1842, reading sector 236482 --> 1 untested layers remaining -- layer slice 107 -RS03: try number = 1843, reading sector 236483 --> 1 untested layers remaining -- layer slice 108 -RS03: try number = 1844, reading sector 236484 --> 1 untested layers remaining -- layer slice 109 -RS03: try number = 1845, reading sector 236485 --> 1 untested layers remaining -- layer slice 110 -RS03: try number = 1846, reading sector 236486 --> 1 untested layers remaining -- layer slice 111 -RS03: try number = 1847, reading sector 236487 --> 1 untested layers remaining -- layer slice 112 -RS03: try number = 1848, reading sector 236488 --> 1 untested layers remaining -- layer slice 113 -RS03: try number = 1849, reading sector 236489 --> 1 untested layers remaining -- layer slice 114 -RS03: try number = 1850, reading sector 236490 --> 1 untested layers remaining -- layer slice 115 -RS03: try number = 1851, reading sector 236491 --> 1 untested layers remaining -- layer slice 116 -RS03: try number = 1852, reading sector 236492 --> 1 untested layers remaining -- layer slice 117 -RS03: try number = 1853, reading sector 236493 --> 1 untested layers remaining -- layer slice 118 -RS03: try number = 1854, reading sector 236494 --> 1 untested layers remaining -- layer slice 119 -RS03: try number = 1855, reading sector 236495 --> 1 untested layers remaining -- layer slice 120 -RS03: try number = 1856, reading sector 236496 --> 1 untested layers remaining -- layer slice 121 -RS03: try number = 1857, reading sector 236497 --> 1 untested layers remaining -- layer slice 122 -RS03: try number = 1858, reading sector 236498 --> 1 untested layers remaining -- layer slice 123 -RS03: try number = 1859, reading sector 236499 --> 1 untested layers remaining -- layer slice 124 -RS03: try number = 1860, reading sector 236500 --> 1 untested layers remaining -- layer slice 125 -RS03: try number = 1861, reading sector 236501 --> 1 untested layers remaining -- layer slice 126 -RS03: try number = 1862, reading sector 236502 --> 1 untested layers remaining -- layer slice 127 -RS03: try number = 1863, reading sector 236503 --> 1 untested layers remaining -- layer slice 128 -RS03: try number = 1864, reading sector 236504 --> 1 untested layers remaining -- layer slice 129 -RS03: try number = 1865, reading sector 236505 --> 1 untested layers remaining -- layer slice 130 -RS03: try number = 1866, reading sector 236506 --> 1 untested layers remaining -- layer slice 131 -RS03: try number = 1867, reading sector 236507 --> 1 untested layers remaining -- layer slice 132 -RS03: try number = 1868, reading sector 236508 --> 1 untested layers remaining -- layer slice 133 -RS03: try number = 1869, reading sector 236509 --> 1 untested layers remaining -- layer slice 134 -RS03: try number = 1870, reading sector 236510 --> 1 untested layers remaining -- layer slice 135 -RS03: try number = 1871, reading sector 236511 --> 1 untested layers remaining -- layer slice 136 -RS03: try number = 1872, reading sector 236512 --> 1 untested layers remaining -- layer slice 137 -RS03: try number = 1873, reading sector 236513 --> 1 untested layers remaining -- layer slice 138 -RS03: try number = 1874, reading sector 236514 --> 1 untested layers remaining -- layer slice 139 -RS03: try number = 1875, reading sector 236515 --> 1 untested layers remaining -- layer slice 140 -RS03: try number = 1876, reading sector 236516 --> 1 untested layers remaining -- layer slice 141 -RS03: try number = 1877, reading sector 236517 --> 1 untested layers remaining -- layer slice 142 -RS03: try number = 1878, reading sector 236518 --> 1 untested layers remaining -- layer slice 143 -RS03: try number = 1879, reading sector 236519 --> 1 untested layers remaining -- layer slice 144 -RS03: try number = 1880, reading sector 236520 --> 1 untested layers remaining -- layer slice 145 -RS03: try number = 1881, reading sector 236521 --> 1 untested layers remaining -- layer slice 146 -RS03: try number = 1882, reading sector 236522 --> 1 untested layers remaining -- layer slice 147 -RS03: try number = 1883, reading sector 236523 --> 1 untested layers remaining -- layer slice 148 -RS03: try number = 1884, reading sector 236524 --> 1 untested layers remaining -- layer slice 149 -RS03: try number = 1885, reading sector 236525 --> 1 untested layers remaining -- layer slice 150 -RS03: try number = 1886, reading sector 236526 --> 1 untested layers remaining -- layer slice 151 -RS03: try number = 1887, reading sector 236527 --> 1 untested layers remaining -- layer slice 152 -RS03: try number = 1888, reading sector 236528 --> 1 untested layers remaining -- layer slice 153 -RS03: try number = 1889, reading sector 236529 --> 1 untested layers remaining -- layer slice 154 -RS03: try number = 1890, reading sector 236530 --> 1 untested layers remaining -- layer slice 155 -RS03: try number = 1891, reading sector 236531 --> 1 untested layers remaining -- layer slice 156 -RS03: try number = 1892, reading sector 236532 --> 1 untested layers remaining -- layer slice 157 -RS03: try number = 1893, reading sector 236533 --> 1 untested layers remaining -- layer slice 158 -RS03: try number = 1894, reading sector 236534 --> 1 untested layers remaining -- layer slice 159 -RS03: try number = 1895, reading sector 236535 --> 1 untested layers remaining -- layer slice 160 -RS03: try number = 1896, reading sector 236536 --> 1 untested layers remaining -- layer slice 161 -RS03: try number = 1897, reading sector 236537 --> 1 untested layers remaining -- layer slice 162 -RS03: try number = 1898, reading sector 236538 --> 1 untested layers remaining -- layer slice 163 -RS03: try number = 1899, reading sector 236539 --> 1 untested layers remaining -- layer slice 164 -RS03: try number = 1900, reading sector 236540 --> 1 untested layers remaining -- layer slice 165 -RS03: try number = 1901, reading sector 236541 --> 1 untested layers remaining -- layer slice 166 -RS03: try number = 1902, reading sector 236542 --> 1 untested layers remaining -- layer slice 167 -RS03: try number = 1903, reading sector 236543 --> 1 untested layers remaining -- layer slice 168 -RS03: try number = 1904, reading sector 236544 --> 1 untested layers remaining -- layer slice 169 -RS03: try number = 1905, reading sector 236545 --> 1 untested layers remaining -- layer slice 170 -RS03: try number = 1906, reading sector 236546 --> 1 untested layers remaining -- layer slice 171 -RS03: try number = 1907, reading sector 236547 --> 1 untested layers remaining -- layer slice 172 -RS03: try number = 1908, reading sector 236548 --> 1 untested layers remaining -- layer slice 173 -RS03: try number = 1909, reading sector 236549 --> 1 untested layers remaining -- layer slice 174 -RS03: try number = 1910, reading sector 236550 --> 1 untested layers remaining -- layer slice 175 -RS03: try number = 1911, reading sector 236551 --> 1 untested layers remaining -- layer slice 176 -RS03: try number = 1912, reading sector 236552 --> 1 untested layers remaining -- layer slice 177 -RS03: try number = 1913, reading sector 236553 --> 1 untested layers remaining -- layer slice 178 -RS03: try number = 1914, reading sector 236554 --> 1 untested layers remaining -- layer slice 179 -RS03: try number = 1915, reading sector 236555 --> 1 untested layers remaining -- layer slice 180 -RS03: try number = 1916, reading sector 236556 --> 1 untested layers remaining -- layer slice 181 -RS03: try number = 1917, reading sector 236557 --> 1 untested layers remaining -- layer slice 182 -RS03: try number = 1918, reading sector 236558 --> 1 untested layers remaining -- layer slice 183 -RS03: try number = 1919, reading sector 236559 --> 1 untested layers remaining -- layer slice 184 -RS03: try number = 1920, reading sector 236560 --> 1 untested layers remaining -- layer slice 185 -RS03: try number = 1921, reading sector 236561 --> 1 untested layers remaining -- layer slice 186 -RS03: try number = 1922, reading sector 236562 --> 1 untested layers remaining -- layer slice 187 -RS03: try number = 1923, reading sector 236563 --> 1 untested layers remaining -- layer slice 188 -RS03: try number = 1924, reading sector 236564 --> 1 untested layers remaining -- layer slice 189 -RS03: try number = 1925, reading sector 236565 --> 1 untested layers remaining -- layer slice 190 -RS03: try number = 1926, reading sector 236566 --> 1 untested layers remaining -- layer slice 191 -RS03: try number = 1927, reading sector 236567 --> 1 untested layers remaining -- layer slice 192 -RS03: try number = 1928, reading sector 236568 --> 1 untested layers remaining -- layer slice 193 -RS03: try number = 1929, reading sector 236569 --> 1 untested layers remaining -- layer slice 194 -RS03: try number = 1930, reading sector 236570 --> 1 untested layers remaining -- layer slice 195 -RS03: try number = 1931, reading sector 236571 --> 1 untested layers remaining -- layer slice 196 -RS03: try number = 1932, reading sector 236572 --> 1 untested layers remaining -- layer slice 197 -RS03: try number = 1933, reading sector 236573 --> 1 untested layers remaining -- layer slice 198 -RS03: try number = 1934, reading sector 236574 --> 1 untested layers remaining -- layer slice 199 -RS03: try number = 1935, reading sector 236575 --> 1 untested layers remaining -- layer slice 200 -RS03: try number = 1936, reading sector 236576 --> 1 untested layers remaining -- layer slice 201 -RS03: try number = 1937, reading sector 236577 --> 1 untested layers remaining -- layer slice 202 -RS03: try number = 1938, reading sector 236578 --> 1 untested layers remaining -- layer slice 203 -RS03: try number = 1939, reading sector 236579 --> 1 untested layers remaining -- layer slice 204 -RS03: try number = 1940, reading sector 236580 --> 1 untested layers remaining -- layer slice 205 -RS03: try number = 1941, reading sector 236581 --> 1 untested layers remaining -- layer slice 206 -RS03: try number = 1942, reading sector 236582 --> 1 untested layers remaining -- layer slice 207 -RS03: try number = 1943, reading sector 236583 --> 1 untested layers remaining -- layer slice 208 -RS03: try number = 1944, reading sector 236584 --> 1 untested layers remaining -- layer slice 209 -RS03: try number = 1945, reading sector 236585 --> 1 untested layers remaining -- layer slice 210 -RS03: try number = 1946, reading sector 236586 --> 1 untested layers remaining -- layer slice 211 -RS03: try number = 1947, reading sector 236587 --> 1 untested layers remaining -- layer slice 212 -RS03: try number = 1948, reading sector 236588 --> 1 untested layers remaining -- layer slice 213 -RS03: try number = 1949, reading sector 236589 --> 1 untested layers remaining -- layer slice 214 -RS03: try number = 1950, reading sector 236590 --> 1 untested layers remaining -- layer slice 215 -RS03: try number = 1951, reading sector 236591 --> 1 untested layers remaining -- layer slice 216 -RS03: try number = 1952, reading sector 236592 --> 1 untested layers remaining -- layer slice 217 -RS03: try number = 1953, reading sector 236593 --> 1 untested layers remaining -- layer slice 218 -RS03: try number = 1954, reading sector 236594 --> 1 untested layers remaining -- layer slice 219 -RS03: try number = 1955, reading sector 236595 --> 1 untested layers remaining -- layer slice 220 -RS03: try number = 1956, reading sector 236596 --> 1 untested layers remaining -- layer slice 221 -RS03: try number = 1957, reading sector 236597 --> 1 untested layers remaining -- layer slice 222 -RS03: try number = 1958, reading sector 236598 --> 1 untested layers remaining -- layer slice 223 -RS03: try number = 1959, reading sector 236599 --> 1 untested layers remaining -- layer slice 224 -RS03: try number = 1960, reading sector 236600 --> 1 untested layers remaining -- layer slice 225 -RS03: try number = 1961, reading sector 236601 --> 1 untested layers remaining -- layer slice 226 -RS03: try number = 1962, reading sector 236602 --> 1 untested layers remaining -- layer slice 227 -RS03: try number = 1963, reading sector 236603 --> 1 untested layers remaining -- layer slice 228 -RS03: try number = 1964, reading sector 236604 --> 1 untested layers remaining -- layer slice 229 -RS03: try number = 1965, reading sector 236605 --> 1 untested layers remaining -- layer slice 230 -RS03: try number = 1966, reading sector 236606 --> 1 untested layers remaining -- layer slice 231 -RS03: try number = 1967, reading sector 236607 --> 1 untested layers remaining -- layer slice 232 -RS03: try number = 1968, reading sector 236608 --> 1 untested layers remaining -- layer slice 233 -RS03: try number = 1969, reading sector 236609 --> 1 untested layers remaining -- layer slice 234 -RS03: try number = 1970, reading sector 236610 --> 1 untested layers remaining -- layer slice 235 -RS03: try number = 1971, reading sector 236611 --> 1 untested layers remaining -- layer slice 236 -RS03: try number = 1972, reading sector 236612 --> 1 untested layers remaining -- layer slice 237 -RS03: try number = 1973, reading sector 236613 --> 1 untested layers remaining -- layer slice 238 -RS03: try number = 1974, reading sector 236614 --> 1 untested layers remaining -- layer slice 239 -RS03: try number = 1975, reading sector 236615 --> 1 untested layers remaining -- layer slice 240 -RS03: try number = 1976, reading sector 236616 --> 1 untested layers remaining -- layer slice 241 -RS03: try number = 1977, reading sector 236617 --> 1 untested layers remaining -- layer slice 242 -RS03: try number = 1978, reading sector 236618 --> 1 untested layers remaining -- layer slice 243 -RS03: try number = 1979, reading sector 236619 --> 1 untested layers remaining -- layer slice 244 -RS03: try number = 1980, reading sector 236620 --> 1 untested layers remaining -- layer slice 245 -RS03: try number = 1981, reading sector 236621 --> 1 untested layers remaining -- layer slice 246 -RS03: try number = 1982, reading sector 236622 --> 1 untested layers remaining -- layer slice 247 -RS03: try number = 1983, reading sector 236623 --> 1 untested layers remaining -- layer slice 248 -RS03: try number = 1984, reading sector 236624 --> 1 untested layers remaining -- layer slice 249 -RS03: try number = 1985, reading sector 236625 --> 1 untested layers remaining -- layer slice 250 -RS03: try number = 1986, reading sector 236626 --> 1 untested layers remaining -- layer slice 251 -RS03: try number = 1987, reading sector 236627 --> 1 untested layers remaining -- layer slice 252 -RS03: try number = 1988, reading sector 236628 --> 1 untested layers remaining -- layer slice 253 -RS03: try number = 1989, reading sector 236629 --> 1 untested layers remaining -- layer slice 254 -RS03: try number = 1990, reading sector 236630 --> 1 untested layers remaining -- layer slice 255 -RS03: try number = 1991, reading sector 236631 --> 1 untested layers remaining -- layer slice 256 -RS03: try number = 1992, reading sector 236632 --> 1 untested layers remaining -- layer slice 257 -RS03: try number = 1993, reading sector 236633 --> 1 untested layers remaining -- layer slice 258 -RS03: try number = 1994, reading sector 236634 --> 1 untested layers remaining -- layer slice 259 -RS03: try number = 1995, reading sector 236635 --> 1 untested layers remaining -- layer slice 260 -RS03: try number = 1996, reading sector 236636 --> 1 untested layers remaining -- layer slice 261 -RS03: try number = 1997, reading sector 236637 --> 1 untested layers remaining -- layer slice 262 -RS03: try number = 1998, reading sector 236638 --> 1 untested layers remaining -- layer slice 263 -RS03: try number = 1999, reading sector 236639 --> 1 untested layers remaining -- layer slice 264 -RS03: try number = 2000, reading sector 236640 --> 1 untested layers remaining -- layer slice 265 -RS03: try number = 2001, reading sector 236641 --> 1 untested layers remaining -- layer slice 266 -RS03: try number = 2002, reading sector 236642 --> 1 untested layers remaining -- layer slice 267 -RS03: try number = 2003, reading sector 236643 --> 1 untested layers remaining -- layer slice 268 -RS03: try number = 2004, reading sector 236644 --> 1 untested layers remaining -- layer slice 269 -RS03: try number = 2005, reading sector 236645 --> 1 untested layers remaining -- layer slice 270 -RS03: try number = 2006, reading sector 236646 --> 1 untested layers remaining -- layer slice 271 -RS03: try number = 2007, reading sector 236647 --> 1 untested layers remaining -- layer slice 272 -RS03: try number = 2008, reading sector 236648 --> 1 untested layers remaining -- layer slice 273 -RS03: try number = 2009, reading sector 236649 --> 1 untested layers remaining -- layer slice 274 -RS03: try number = 2010, reading sector 236650 --> 1 untested layers remaining -- layer slice 275 -RS03: try number = 2011, reading sector 236651 --> 1 untested layers remaining -- layer slice 276 -RS03: try number = 2012, reading sector 236652 --> 1 untested layers remaining -- layer slice 277 -RS03: try number = 2013, reading sector 236653 --> 1 untested layers remaining -- layer slice 278 -RS03: try number = 2014, reading sector 236654 --> 1 untested layers remaining -- layer slice 279 -RS03: try number = 2015, reading sector 236655 --> 1 untested layers remaining -- layer slice 280 -RS03: try number = 2016, reading sector 236656 --> 1 untested layers remaining -- layer slice 281 -RS03: try number = 2017, reading sector 236657 --> 1 untested layers remaining -- layer slice 282 -RS03: try number = 2018, reading sector 236658 --> 1 untested layers remaining -- layer slice 283 -RS03: try number = 2019, reading sector 236659 --> 1 untested layers remaining -- layer slice 284 -RS03: try number = 2020, reading sector 236660 --> 1 untested layers remaining -- layer slice 285 -RS03: try number = 2021, reading sector 236661 --> 1 untested layers remaining -- layer slice 286 -RS03: try number = 2022, reading sector 236662 --> 1 untested layers remaining -- layer slice 287 -RS03: try number = 2023, reading sector 236663 --> 1 untested layers remaining -- layer slice 288 -RS03: try number = 2024, reading sector 236664 --> 1 untested layers remaining -- layer slice 289 -RS03: try number = 2025, reading sector 236665 --> 1 untested layers remaining -- layer slice 290 -RS03: try number = 2026, reading sector 236666 --> 1 untested layers remaining -- layer slice 291 -RS03: try number = 2027, reading sector 236667 --> 1 untested layers remaining -- layer slice 292 -RS03: try number = 2028, reading sector 236668 --> 1 untested layers remaining -- layer slice 293 -RS03: try number = 2029, reading sector 236669 --> 1 untested layers remaining -- layer slice 294 -RS03: try number = 2030, reading sector 236670 --> 1 untested layers remaining -- layer slice 295 -RS03: try number = 2031, reading sector 236671 --> 1 untested layers remaining -- layer slice 296 -RS03: try number = 2032, reading sector 236672 --> 1 untested layers remaining -- layer slice 297 -RS03: try number = 2033, reading sector 236673 --> 1 untested layers remaining -- layer slice 298 -RS03: try number = 2034, reading sector 236674 --> 1 untested layers remaining -- layer slice 299 -RS03: try number = 2035, reading sector 236675 --> 1 untested layers remaining -- layer slice 300 -RS03: try number = 2036, reading sector 236676 --> 1 untested layers remaining -- layer slice 301 -RS03: try number = 2037, reading sector 236677 --> 1 untested layers remaining -- layer slice 302 -RS03: try number = 2038, reading sector 236678 --> 1 untested layers remaining -- layer slice 303 -RS03: try number = 2039, reading sector 236679 --> 1 untested layers remaining -- layer slice 304 -RS03: try number = 2040, reading sector 236680 --> 1 untested layers remaining -- layer slice 305 -RS03: try number = 2041, reading sector 236681 --> 1 untested layers remaining -- layer slice 306 -RS03: try number = 2042, reading sector 236682 --> 1 untested layers remaining -- layer slice 307 -RS03: try number = 2043, reading sector 236683 --> 1 untested layers remaining -- layer slice 308 -RS03: try number = 2044, reading sector 236684 --> 1 untested layers remaining -- layer slice 309 -RS03: try number = 2045, reading sector 236685 --> 1 untested layers remaining -- layer slice 310 -RS03: try number = 2046, reading sector 236686 --> 1 untested layers remaining -- layer slice 311 -RS03: try number = 2047, reading sector 236687 --> 1 untested layers remaining -- layer slice 312 -RS03: try number = 2048, reading sector 236688 --> 1 untested layers remaining -- layer slice 313 -RS03: try number = 2049, reading sector 236689 --> 1 untested layers remaining -- layer slice 314 -RS03: try number = 2050, reading sector 236690 --> 1 untested layers remaining -- layer slice 315 -RS03: try number = 2051, reading sector 236691 --> 1 untested layers remaining -- layer slice 316 -RS03: try number = 2052, reading sector 236692 --> 1 untested layers remaining -- layer slice 317 -RS03: try number = 2053, reading sector 236693 --> 1 untested layers remaining -- layer slice 318 -RS03: try number = 2054, reading sector 236694 --> 1 untested layers remaining -- layer slice 319 -RS03: try number = 2055, reading sector 236695 --> 1 untested layers remaining -- layer slice 320 -RS03: try number = 2056, reading sector 236696 --> 1 untested layers remaining -- layer slice 321 -RS03: try number = 2057, reading sector 236697 --> 1 untested layers remaining -- layer slice 322 -RS03: try number = 2058, reading sector 236698 --> 1 untested layers remaining -- layer slice 323 -RS03: try number = 2059, reading sector 236699 --> 1 untested layers remaining -- layer slice 324 -RS03: try number = 2060, reading sector 236700 --> 1 untested layers remaining -- layer slice 325 -RS03: try number = 2061, reading sector 236701 --> 1 untested layers remaining -- layer slice 326 -RS03: try number = 2062, reading sector 236702 --> 1 untested layers remaining -- layer slice 327 -RS03: try number = 2063, reading sector 236703 --> 1 untested layers remaining -- layer slice 328 -RS03: try number = 2064, reading sector 236704 --> 1 untested layers remaining -- layer slice 329 -RS03: try number = 2065, reading sector 236705 --> 1 untested layers remaining -- layer slice 330 -RS03: try number = 2066, reading sector 236706 --> 1 untested layers remaining -- layer slice 331 -RS03: try number = 2067, reading sector 236707 --> 1 untested layers remaining -- layer slice 332 -RS03: try number = 2068, reading sector 236708 --> 1 untested layers remaining -- layer slice 333 -RS03: try number = 2069, reading sector 236709 --> 1 untested layers remaining -- layer slice 334 -RS03: try number = 2070, reading sector 236710 --> 1 untested layers remaining -- layer slice 335 -RS03: try number = 2071, reading sector 236711 --> 1 untested layers remaining -- layer slice 336 -RS03: try number = 2072, reading sector 236712 -** All layers tested -> no RS03 data found -.. trying layer size 1408 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 2073, reading sector 118272 -RS03: try number = 2074, reading sector 119680 -RS03: try number = 2075, reading sector 121088 -RS03: try number = 2076, reading sector 122496 -RS03: try number = 2077, reading sector 123904 -RS03: try number = 2078, reading sector 125312 -RS03: try number = 2079, reading sector 126720 -RS03: try number = 2080, reading sector 128128 -RS03: try number = 2081, reading sector 129536 -RS03: try number = 2082, reading sector 130944 -RS03: try number = 2083, reading sector 132352 -RS03: try number = 2084, reading sector 133760 -RS03: try number = 2085, reading sector 135168 -RS03: try number = 2086, reading sector 136576 -RS03: try number = 2087, reading sector 137984 -RS03: try number = 2088, reading sector 139392 -RS03: try number = 2089, reading sector 140800 -RS03: try number = 2090, reading sector 142208 -RS03: try number = 2091, reading sector 143616 -RS03: try number = 2092, reading sector 145024 -RS03: try number = 2093, reading sector 146432 -RS03: try number = 2094, reading sector 147840 -RS03: try number = 2095, reading sector 149248 -RS03: try number = 2096, reading sector 150656 -RS03: try number = 2097, reading sector 152064 -RS03: try number = 2098, reading sector 153472 -RS03: try number = 2099, reading sector 154880 -RS03: try number = 2100, reading sector 156288 -RS03: try number = 2101, reading sector 157696 -RS03: try number = 2102, reading sector 159104 -RS03: try number = 2103, reading sector 160512 -RS03: try number = 2104, reading sector 161920 -RS03: try number = 2105, reading sector 163328 -RS03: try number = 2106, reading sector 164736 -RS03: try number = 2107, reading sector 166144 -RS03: try number = 2108, reading sector 167552 -RS03: try number = 2109, reading sector 168960 -RS03: try number = 2110, reading sector 170368 -RS03: try number = 2111, reading sector 171776 -RS03: try number = 2112, reading sector 173184 -RS03: try number = 2113, reading sector 174592 -RS03: try number = 2114, reading sector 176000 -RS03: try number = 2115, reading sector 177408 -RS03: try number = 2116, reading sector 178816 -RS03: try number = 2117, reading sector 180224 -RS03: try number = 2118, reading sector 181632 -RS03: try number = 2119, reading sector 183040 -RS03: try number = 2120, reading sector 184448 -RS03: try number = 2121, reading sector 185856 -RS03: try number = 2122, reading sector 187264 -RS03: try number = 2123, reading sector 188672 -RS03: try number = 2124, reading sector 190080 -RS03: try number = 2125, reading sector 191488 -RS03: try number = 2126, reading sector 192896 -RS03: try number = 2127, reading sector 194304 -RS03: try number = 2128, reading sector 195712 -RS03: try number = 2129, reading sector 197120 -RS03: try number = 2130, reading sector 198528 -RS03: try number = 2131, reading sector 199936 -RS03: try number = 2132, reading sector 201344 -RS03: try number = 2133, reading sector 202752 -RS03: try number = 2134, reading sector 204160 -RS03: try number = 2135, reading sector 205568 -RS03: try number = 2136, reading sector 206976 -RS03: try number = 2137, reading sector 208384 -RS03: try number = 2138, reading sector 209792 -RS03: try number = 2139, reading sector 211200 -RS03: try number = 2140, reading sector 212608 -RS03: try number = 2141, reading sector 214016 -RS03: try number = 2142, reading sector 215424 -RS03: try number = 2143, reading sector 216832 -RS03: try number = 2144, reading sector 218240 -RS03: try number = 2145, reading sector 219648 -RS03: try number = 2146, reading sector 221056 -RS03: try number = 2147, reading sector 222464 -RS03: try number = 2148, reading sector 223872 -RS03: try number = 2149, reading sector 225280 -RS03: try number = 2150, reading sector 226688 -RS03: try number = 2151, reading sector 228096 -RS03: try number = 2152, reading sector 229504 -RS03: try number = 2153, reading sector 230912 -RS03: try number = 2154, reading sector 232320 -RS03: try number = 2155, reading sector 233728 -RS03: try number = 2156, reading sector 235136 -RS03: try number = 2157, reading sector 236544 -RS03: try number = 2158, reading sector 237952 -RS03: try number = 2159, reading sector 239360 -RS03: try number = 2160, reading sector 240768 -RS03: try number = 2161, reading sector 242176 -RS03: try number = 2162, reading sector 243584 -RS03: try number = 2163, reading sector 244992 -RS03: try number = 2164, reading sector 246400 -RS03: try number = 2165, reading sector 247808 -RS03: try number = 2166, reading sector 249216 -RS03: try number = 2167, reading sector 250624 -RS03: try number = 2168, reading sector 252032 -RS03: try number = 2169, reading sector 253440 -RS03: try number = 2170, reading sector 254848 -RS03: try number = 2171, reading sector 256256 -RS03: try number = 2172, reading sector 257664 -RS03: try number = 2173, reading sector 259072 -RS03: try number = 2174, reading sector 260480 -RS03: try number = 2175, reading sector 261888 -RS03: try number = 2176, reading sector 263296 -RS03: try number = 2177, reading sector 264704 -RS03: try number = 2178, reading sector 266112 -RS03: try number = 2179, reading sector 267520 -RS03: try number = 2180, reading sector 268928 -RS03: try number = 2181, reading sector 270336 -RS03: try number = 2182, reading sector 271744 -RS03: try number = 2183, reading sector 273152 -RS03: try number = 2184, reading sector 274560 -RS03: try number = 2185, reading sector 275968 -RS03: try number = 2186, reading sector 277376 -RS03: try number = 2187, reading sector 278784 -RS03: try number = 2188, reading sector 280192 -RS03: try number = 2189, reading sector 281600 -RS03: try number = 2190, reading sector 283008 -RS03: try number = 2191, reading sector 284416 -RS03: try number = 2192, reading sector 285824 -RS03: try number = 2193, reading sector 287232 -RS03: try number = 2194, reading sector 288640 -RS03: try number = 2195, reading sector 290048 -RS03: try number = 2196, reading sector 291456 -RS03: try number = 2197, reading sector 292864 -RS03: try number = 2198, reading sector 294272 -RS03: try number = 2199, reading sector 295680 -RS03: try number = 2200, reading sector 297088 -RS03: try number = 2201, reading sector 298496 -RS03: try number = 2202, reading sector 299904 -RS03: try number = 2203, reading sector 301312 -RS03: try number = 2204, reading sector 302720 -RS03: try number = 2205, reading sector 304128 -RS03: try number = 2206, reading sector 305536 -RS03: try number = 2207, reading sector 306944 -RS03: try number = 2208, reading sector 308352 -RS03: try number = 2209, reading sector 309760 -RS03: try number = 2210, reading sector 311168 -RS03: try number = 2211, reading sector 312576 -RS03: try number = 2212, reading sector 313984 -RS03: try number = 2213, reading sector 315392 -RS03: try number = 2214, reading sector 316800 -RS03: try number = 2215, reading sector 318208 -RS03: try number = 2216, reading sector 319616 -RS03: try number = 2217, reading sector 321024 -RS03: try number = 2218, reading sector 322432 -RS03: try number = 2219, reading sector 323840 -RS03: try number = 2220, reading sector 325248 -RS03: try number = 2221, reading sector 326656 -RS03: try number = 2222, reading sector 328064 -RS03: try number = 2223, reading sector 329472 -RS03: try number = 2224, reading sector 330880 -RS03: try number = 2225, reading sector 332288 -RS03: try number = 2226, reading sector 333696 -RS03: try number = 2227, reading sector 335104 -RS03: try number = 2228, reading sector 336512 -RS03: try number = 2229, reading sector 337920 -RS03: try number = 2230, reading sector 339328 -RS03: try number = 2231, reading sector 340736 -RS03: try number = 2232, reading sector 342144 -RS03: try number = 2233, reading sector 343552 -RS03: try number = 2234, reading sector 344960 -RS03: try number = 2235, reading sector 346368 -RS03: try number = 2236, reading sector 347776 --> 1 untested layers remaining -- layer slice 1 -RS03: try number = 2237, reading sector 236545 --> 1 untested layers remaining -- layer slice 2 -RS03: try number = 2238, reading sector 236546 --> 1 untested layers remaining -- layer slice 3 -RS03: try number = 2239, reading sector 236547 --> 1 untested layers remaining -- layer slice 4 -RS03: try number = 2240, reading sector 236548 --> 1 untested layers remaining -- layer slice 5 -RS03: try number = 2241, reading sector 236549 --> 1 untested layers remaining -- layer slice 6 -RS03: try number = 2242, reading sector 236550 --> 1 untested layers remaining -- layer slice 7 -RS03: try number = 2243, reading sector 236551 --> 1 untested layers remaining -- layer slice 8 -RS03: try number = 2244, reading sector 236552 --> 1 untested layers remaining -- layer slice 9 -RS03: try number = 2245, reading sector 236553 --> 1 untested layers remaining -- layer slice 10 -RS03: try number = 2246, reading sector 236554 --> 1 untested layers remaining -- layer slice 11 -RS03: try number = 2247, reading sector 236555 --> 1 untested layers remaining -- layer slice 12 -RS03: try number = 2248, reading sector 236556 --> 1 untested layers remaining -- layer slice 13 -RS03: try number = 2249, reading sector 236557 --> 1 untested layers remaining -- layer slice 14 -RS03: try number = 2250, reading sector 236558 --> 1 untested layers remaining -- layer slice 15 -RS03: try number = 2251, reading sector 236559 --> 1 untested layers remaining -- layer slice 16 -RS03: try number = 2252, reading sector 236560 --> 1 untested layers remaining -- layer slice 17 -RS03: try number = 2253, reading sector 236561 --> 1 untested layers remaining -- layer slice 18 -RS03: try number = 2254, reading sector 236562 --> 1 untested layers remaining -- layer slice 19 -RS03: try number = 2255, reading sector 236563 --> 1 untested layers remaining -- layer slice 20 -RS03: try number = 2256, reading sector 236564 --> 1 untested layers remaining -- layer slice 21 -RS03: try number = 2257, reading sector 236565 --> 1 untested layers remaining -- layer slice 22 -RS03: try number = 2258, reading sector 236566 --> 1 untested layers remaining -- layer slice 23 -RS03: try number = 2259, reading sector 236567 --> 1 untested layers remaining -- layer slice 24 -RS03: try number = 2260, reading sector 236568 --> 1 untested layers remaining -- layer slice 25 -RS03: try number = 2261, reading sector 236569 --> 1 untested layers remaining -- layer slice 26 -RS03: try number = 2262, reading sector 236570 --> 1 untested layers remaining -- layer slice 27 -RS03: try number = 2263, reading sector 236571 --> 1 untested layers remaining -- layer slice 28 -RS03: try number = 2264, reading sector 236572 --> 1 untested layers remaining -- layer slice 29 -RS03: try number = 2265, reading sector 236573 --> 1 untested layers remaining -- layer slice 30 -RS03: try number = 2266, reading sector 236574 --> 1 untested layers remaining -- layer slice 31 -RS03: try number = 2267, reading sector 236575 --> 1 untested layers remaining -- layer slice 32 -RS03: try number = 2268, reading sector 236576 --> 1 untested layers remaining -- layer slice 33 -RS03: try number = 2269, reading sector 236577 --> 1 untested layers remaining -- layer slice 34 -RS03: try number = 2270, reading sector 236578 --> 1 untested layers remaining -- layer slice 35 -RS03: try number = 2271, reading sector 236579 --> 1 untested layers remaining -- layer slice 36 -RS03: try number = 2272, reading sector 236580 --> 1 untested layers remaining -- layer slice 37 -RS03: try number = 2273, reading sector 236581 --> 1 untested layers remaining -- layer slice 38 -RS03: try number = 2274, reading sector 236582 --> 1 untested layers remaining -- layer slice 39 -RS03: try number = 2275, reading sector 236583 --> 1 untested layers remaining -- layer slice 40 -RS03: try number = 2276, reading sector 236584 --> 1 untested layers remaining -- layer slice 41 -RS03: try number = 2277, reading sector 236585 --> 1 untested layers remaining -- layer slice 42 -RS03: try number = 2278, reading sector 236586 --> 1 untested layers remaining -- layer slice 43 -RS03: try number = 2279, reading sector 236587 --> 1 untested layers remaining -- layer slice 44 -RS03: try number = 2280, reading sector 236588 --> 1 untested layers remaining -- layer slice 45 -RS03: try number = 2281, reading sector 236589 --> 1 untested layers remaining -- layer slice 46 -RS03: try number = 2282, reading sector 236590 --> 1 untested layers remaining -- layer slice 47 -RS03: try number = 2283, reading sector 236591 --> 1 untested layers remaining -- layer slice 48 -RS03: try number = 2284, reading sector 236592 --> 1 untested layers remaining -- layer slice 49 -RS03: try number = 2285, reading sector 236593 --> 1 untested layers remaining -- layer slice 50 -RS03: try number = 2286, reading sector 236594 --> 1 untested layers remaining -- layer slice 51 -RS03: try number = 2287, reading sector 236595 --> 1 untested layers remaining -- layer slice 52 -RS03: try number = 2288, reading sector 236596 --> 1 untested layers remaining -- layer slice 53 -RS03: try number = 2289, reading sector 236597 --> 1 untested layers remaining -- layer slice 54 -RS03: try number = 2290, reading sector 236598 --> 1 untested layers remaining -- layer slice 55 -RS03: try number = 2291, reading sector 236599 --> 1 untested layers remaining -- layer slice 56 -RS03: try number = 2292, reading sector 236600 --> 1 untested layers remaining -- layer slice 57 -RS03: try number = 2293, reading sector 236601 --> 1 untested layers remaining -- layer slice 58 -RS03: try number = 2294, reading sector 236602 --> 1 untested layers remaining -- layer slice 59 -RS03: try number = 2295, reading sector 236603 --> 1 untested layers remaining -- layer slice 60 -RS03: try number = 2296, reading sector 236604 --> 1 untested layers remaining -- layer slice 61 -RS03: try number = 2297, reading sector 236605 --> 1 untested layers remaining -- layer slice 62 -RS03: try number = 2298, reading sector 236606 --> 1 untested layers remaining -- layer slice 63 -RS03: try number = 2299, reading sector 236607 --> 1 untested layers remaining -- layer slice 64 -RS03: try number = 2300, reading sector 236608 --> 1 untested layers remaining -- layer slice 65 -RS03: try number = 2301, reading sector 236609 --> 1 untested layers remaining -- layer slice 66 -RS03: try number = 2302, reading sector 236610 --> 1 untested layers remaining -- layer slice 67 -RS03: try number = 2303, reading sector 236611 --> 1 untested layers remaining -- layer slice 68 -RS03: try number = 2304, reading sector 236612 --> 1 untested layers remaining -- layer slice 69 -RS03: try number = 2305, reading sector 236613 --> 1 untested layers remaining -- layer slice 70 -RS03: try number = 2306, reading sector 236614 --> 1 untested layers remaining -- layer slice 71 -RS03: try number = 2307, reading sector 236615 --> 1 untested layers remaining -- layer slice 72 -RS03: try number = 2308, reading sector 236616 --> 1 untested layers remaining -- layer slice 73 -RS03: try number = 2309, reading sector 236617 --> 1 untested layers remaining -- layer slice 74 -RS03: try number = 2310, reading sector 236618 --> 1 untested layers remaining -- layer slice 75 -RS03: try number = 2311, reading sector 236619 --> 1 untested layers remaining -- layer slice 76 -RS03: try number = 2312, reading sector 236620 --> 1 untested layers remaining -- layer slice 77 -RS03: try number = 2313, reading sector 236621 --> 1 untested layers remaining -- layer slice 78 -RS03: try number = 2314, reading sector 236622 --> 1 untested layers remaining -- layer slice 79 -RS03: try number = 2315, reading sector 236623 --> 1 untested layers remaining -- layer slice 80 -RS03: try number = 2316, reading sector 236624 --> 1 untested layers remaining -- layer slice 81 -RS03: try number = 2317, reading sector 236625 --> 1 untested layers remaining -- layer slice 82 -RS03: try number = 2318, reading sector 236626 --> 1 untested layers remaining -- layer slice 83 -RS03: try number = 2319, reading sector 236627 --> 1 untested layers remaining -- layer slice 84 -RS03: try number = 2320, reading sector 236628 --> 1 untested layers remaining -- layer slice 85 -RS03: try number = 2321, reading sector 236629 --> 1 untested layers remaining -- layer slice 86 -RS03: try number = 2322, reading sector 236630 --> 1 untested layers remaining -- layer slice 87 -RS03: try number = 2323, reading sector 236631 --> 1 untested layers remaining -- layer slice 88 -RS03: try number = 2324, reading sector 236632 --> 1 untested layers remaining -- layer slice 89 -RS03: try number = 2325, reading sector 236633 --> 1 untested layers remaining -- layer slice 90 -RS03: try number = 2326, reading sector 236634 --> 1 untested layers remaining -- layer slice 91 -RS03: try number = 2327, reading sector 236635 --> 1 untested layers remaining -- layer slice 92 -RS03: try number = 2328, reading sector 236636 --> 1 untested layers remaining -- layer slice 93 -RS03: try number = 2329, reading sector 236637 --> 1 untested layers remaining -- layer slice 94 -RS03: try number = 2330, reading sector 236638 --> 1 untested layers remaining -- layer slice 95 -RS03: try number = 2331, reading sector 236639 --> 1 untested layers remaining -- layer slice 96 -RS03: try number = 2332, reading sector 236640 --> 1 untested layers remaining -- layer slice 97 -RS03: try number = 2333, reading sector 236641 --> 1 untested layers remaining -- layer slice 98 -RS03: try number = 2334, reading sector 236642 --> 1 untested layers remaining -- layer slice 99 -RS03: try number = 2335, reading sector 236643 --> 1 untested layers remaining -- layer slice 100 -RS03: try number = 2336, reading sector 236644 --> 1 untested layers remaining -- layer slice 101 -RS03: try number = 2337, reading sector 236645 --> 1 untested layers remaining -- layer slice 102 -RS03: try number = 2338, reading sector 236646 --> 1 untested layers remaining -- layer slice 103 -RS03: try number = 2339, reading sector 236647 --> 1 untested layers remaining -- layer slice 104 -RS03: try number = 2340, reading sector 236648 --> 1 untested layers remaining -- layer slice 105 -RS03: try number = 2341, reading sector 236649 --> 1 untested layers remaining -- layer slice 106 -RS03: try number = 2342, reading sector 236650 --> 1 untested layers remaining -- layer slice 107 -RS03: try number = 2343, reading sector 236651 --> 1 untested layers remaining -- layer slice 108 -RS03: try number = 2344, reading sector 236652 --> 1 untested layers remaining -- layer slice 109 -RS03: try number = 2345, reading sector 236653 --> 1 untested layers remaining -- layer slice 110 -RS03: try number = 2346, reading sector 236654 --> 1 untested layers remaining -- layer slice 111 -RS03: try number = 2347, reading sector 236655 --> 1 untested layers remaining -- layer slice 112 -RS03: try number = 2348, reading sector 236656 --> 1 untested layers remaining -- layer slice 113 -RS03: try number = 2349, reading sector 236657 --> 1 untested layers remaining -- layer slice 114 -RS03: try number = 2350, reading sector 236658 --> 1 untested layers remaining -- layer slice 115 -RS03: try number = 2351, reading sector 236659 --> 1 untested layers remaining -- layer slice 116 -RS03: try number = 2352, reading sector 236660 --> 1 untested layers remaining -- layer slice 117 -RS03: try number = 2353, reading sector 236661 --> 1 untested layers remaining -- layer slice 118 -RS03: try number = 2354, reading sector 236662 --> 1 untested layers remaining -- layer slice 119 -RS03: try number = 2355, reading sector 236663 --> 1 untested layers remaining -- layer slice 120 -RS03: try number = 2356, reading sector 236664 --> 1 untested layers remaining -- layer slice 121 -RS03: try number = 2357, reading sector 236665 --> 1 untested layers remaining -- layer slice 122 -RS03: try number = 2358, reading sector 236666 --> 1 untested layers remaining -- layer slice 123 -RS03: try number = 2359, reading sector 236667 --> 1 untested layers remaining -- layer slice 124 -RS03: try number = 2360, reading sector 236668 --> 1 untested layers remaining -- layer slice 125 -RS03: try number = 2361, reading sector 236669 --> 1 untested layers remaining -- layer slice 126 -RS03: try number = 2362, reading sector 236670 --> 1 untested layers remaining -- layer slice 127 -RS03: try number = 2363, reading sector 236671 --> 1 untested layers remaining -- layer slice 128 -RS03: try number = 2364, reading sector 236672 --> 1 untested layers remaining -- layer slice 129 -RS03: try number = 2365, reading sector 236673 --> 1 untested layers remaining -- layer slice 130 -RS03: try number = 2366, reading sector 236674 --> 1 untested layers remaining -- layer slice 131 -RS03: try number = 2367, reading sector 236675 --> 1 untested layers remaining -- layer slice 132 -RS03: try number = 2368, reading sector 236676 --> 1 untested layers remaining -- layer slice 133 -RS03: try number = 2369, reading sector 236677 --> 1 untested layers remaining -- layer slice 134 -RS03: try number = 2370, reading sector 236678 --> 1 untested layers remaining -- layer slice 135 -RS03: try number = 2371, reading sector 236679 --> 1 untested layers remaining -- layer slice 136 -RS03: try number = 2372, reading sector 236680 --> 1 untested layers remaining -- layer slice 137 -RS03: try number = 2373, reading sector 236681 --> 1 untested layers remaining -- layer slice 138 -RS03: try number = 2374, reading sector 236682 --> 1 untested layers remaining -- layer slice 139 -RS03: try number = 2375, reading sector 236683 --> 1 untested layers remaining -- layer slice 140 -RS03: try number = 2376, reading sector 236684 --> 1 untested layers remaining -- layer slice 141 -RS03: try number = 2377, reading sector 236685 --> 1 untested layers remaining -- layer slice 142 -RS03: try number = 2378, reading sector 236686 --> 1 untested layers remaining -- layer slice 143 -RS03: try number = 2379, reading sector 236687 --> 1 untested layers remaining -- layer slice 144 -RS03: try number = 2380, reading sector 236688 --> 1 untested layers remaining -- layer slice 145 -RS03: try number = 2381, reading sector 236689 --> 1 untested layers remaining -- layer slice 146 -RS03: try number = 2382, reading sector 236690 --> 1 untested layers remaining -- layer slice 147 -RS03: try number = 2383, reading sector 236691 --> 1 untested layers remaining -- layer slice 148 -RS03: try number = 2384, reading sector 236692 --> 1 untested layers remaining -- layer slice 149 -RS03: try number = 2385, reading sector 236693 --> 1 untested layers remaining -- layer slice 150 -RS03: try number = 2386, reading sector 236694 --> 1 untested layers remaining -- layer slice 151 -RS03: try number = 2387, reading sector 236695 --> 1 untested layers remaining -- layer slice 152 -RS03: try number = 2388, reading sector 236696 --> 1 untested layers remaining -- layer slice 153 -RS03: try number = 2389, reading sector 236697 --> 1 untested layers remaining -- layer slice 154 -RS03: try number = 2390, reading sector 236698 --> 1 untested layers remaining -- layer slice 155 -RS03: try number = 2391, reading sector 236699 --> 1 untested layers remaining -- layer slice 156 -RS03: try number = 2392, reading sector 236700 --> 1 untested layers remaining -- layer slice 157 -RS03: try number = 2393, reading sector 236701 --> 1 untested layers remaining -- layer slice 158 -RS03: try number = 2394, reading sector 236702 --> 1 untested layers remaining -- layer slice 159 -RS03: try number = 2395, reading sector 236703 --> 1 untested layers remaining -- layer slice 160 -RS03: try number = 2396, reading sector 236704 --> 1 untested layers remaining -- layer slice 161 -RS03: try number = 2397, reading sector 236705 --> 1 untested layers remaining -- layer slice 162 -RS03: try number = 2398, reading sector 236706 --> 1 untested layers remaining -- layer slice 163 -RS03: try number = 2399, reading sector 236707 --> 1 untested layers remaining -- layer slice 164 -RS03: try number = 2400, reading sector 236708 --> 1 untested layers remaining -- layer slice 165 -RS03: try number = 2401, reading sector 236709 --> 1 untested layers remaining -- layer slice 166 -RS03: try number = 2402, reading sector 236710 --> 1 untested layers remaining -- layer slice 167 -RS03: try number = 2403, reading sector 236711 --> 1 untested layers remaining -- layer slice 168 -RS03: try number = 2404, reading sector 236712 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. # Calling query_size() diff --git a/regtest/database/RS03i_scan_random_image b/regtest/database/RS03i_scan_random_image index 1b15e09b..065f16ba 100644 --- a/regtest/database/RS03i_scan_random_image +++ b/regtest/database/RS03i_scan_random_image @@ -315,343 +315,6 @@ RS03: try number = 162, reading sector 345205 RS03: try number = 163, reading sector 346614 RS03: try number = 164, reading sector 348023 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 1407 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 118188 -RS03: try number = 166, reading sector 119595 -RS03: try number = 167, reading sector 121002 -RS03: try number = 168, reading sector 122409 -RS03: try number = 169, reading sector 123816 -RS03: try number = 170, reading sector 125223 -RS03: try number = 171, reading sector 126630 -RS03: try number = 172, reading sector 128037 -RS03: try number = 173, reading sector 129444 -RS03: try number = 174, reading sector 130851 -RS03: try number = 175, reading sector 132258 -RS03: try number = 176, reading sector 133665 -RS03: try number = 177, reading sector 135072 -RS03: try number = 178, reading sector 136479 -RS03: try number = 179, reading sector 137886 -RS03: try number = 180, reading sector 139293 -RS03: try number = 181, reading sector 140700 -RS03: try number = 182, reading sector 142107 -RS03: try number = 183, reading sector 143514 -RS03: try number = 184, reading sector 144921 -RS03: try number = 185, reading sector 146328 -RS03: try number = 186, reading sector 147735 -RS03: try number = 187, reading sector 149142 -RS03: try number = 188, reading sector 150549 -RS03: try number = 189, reading sector 151956 -RS03: try number = 190, reading sector 153363 -RS03: try number = 191, reading sector 154770 -RS03: try number = 192, reading sector 156177 -RS03: try number = 193, reading sector 157584 -RS03: try number = 194, reading sector 158991 -RS03: try number = 195, reading sector 160398 -RS03: try number = 196, reading sector 161805 -RS03: try number = 197, reading sector 163212 -RS03: try number = 198, reading sector 164619 -RS03: try number = 199, reading sector 166026 -RS03: try number = 200, reading sector 167433 -RS03: try number = 201, reading sector 168840 -RS03: try number = 202, reading sector 170247 -RS03: try number = 203, reading sector 171654 -RS03: try number = 204, reading sector 173061 -RS03: try number = 205, reading sector 174468 -RS03: try number = 206, reading sector 175875 -RS03: try number = 207, reading sector 177282 -RS03: try number = 208, reading sector 178689 -RS03: try number = 209, reading sector 180096 -RS03: try number = 210, reading sector 181503 -RS03: try number = 211, reading sector 182910 -RS03: try number = 212, reading sector 184317 -RS03: try number = 213, reading sector 185724 -RS03: try number = 214, reading sector 187131 -RS03: try number = 215, reading sector 188538 -RS03: try number = 216, reading sector 189945 -RS03: try number = 217, reading sector 191352 -RS03: try number = 218, reading sector 192759 -RS03: try number = 219, reading sector 194166 -RS03: try number = 220, reading sector 195573 -RS03: try number = 221, reading sector 196980 -RS03: try number = 222, reading sector 198387 -RS03: try number = 223, reading sector 199794 -RS03: try number = 224, reading sector 201201 -RS03: try number = 225, reading sector 202608 -RS03: try number = 226, reading sector 204015 -RS03: try number = 227, reading sector 205422 -RS03: try number = 228, reading sector 206829 -RS03: try number = 229, reading sector 208236 -RS03: try number = 230, reading sector 209643 -RS03: try number = 231, reading sector 211050 -RS03: try number = 232, reading sector 212457 -RS03: try number = 233, reading sector 213864 -RS03: try number = 234, reading sector 215271 -RS03: try number = 235, reading sector 216678 -RS03: try number = 236, reading sector 218085 -RS03: try number = 237, reading sector 219492 -RS03: try number = 238, reading sector 220899 -RS03: try number = 239, reading sector 222306 -RS03: try number = 240, reading sector 223713 -RS03: try number = 241, reading sector 225120 -RS03: try number = 242, reading sector 226527 -RS03: try number = 243, reading sector 227934 -RS03: try number = 244, reading sector 229341 -RS03: try number = 245, reading sector 230748 -RS03: try number = 246, reading sector 232155 -RS03: try number = 247, reading sector 233562 -RS03: try number = 248, reading sector 234969 -RS03: try number = 249, reading sector 236376 -RS03: try number = 250, reading sector 237783 -RS03: try number = 251, reading sector 239190 -RS03: try number = 252, reading sector 240597 -RS03: try number = 253, reading sector 242004 -RS03: try number = 254, reading sector 243411 -RS03: try number = 255, reading sector 244818 -RS03: try number = 256, reading sector 246225 -RS03: try number = 257, reading sector 247632 -RS03: try number = 258, reading sector 249039 -RS03: try number = 259, reading sector 250446 -RS03: try number = 260, reading sector 251853 -RS03: try number = 261, reading sector 253260 -RS03: try number = 262, reading sector 254667 -RS03: try number = 263, reading sector 256074 -RS03: try number = 264, reading sector 257481 -RS03: try number = 265, reading sector 258888 -RS03: try number = 266, reading sector 260295 -RS03: try number = 267, reading sector 261702 -RS03: try number = 268, reading sector 263109 -RS03: try number = 269, reading sector 264516 -RS03: try number = 270, reading sector 265923 -RS03: try number = 271, reading sector 267330 -RS03: try number = 272, reading sector 268737 -RS03: try number = 273, reading sector 270144 -RS03: try number = 274, reading sector 271551 -RS03: try number = 275, reading sector 272958 -RS03: try number = 276, reading sector 274365 -RS03: try number = 277, reading sector 275772 -RS03: try number = 278, reading sector 277179 -RS03: try number = 279, reading sector 278586 -RS03: try number = 280, reading sector 279993 -RS03: try number = 281, reading sector 281400 -RS03: try number = 282, reading sector 282807 -RS03: try number = 283, reading sector 284214 -RS03: try number = 284, reading sector 285621 -RS03: try number = 285, reading sector 287028 -RS03: try number = 286, reading sector 288435 -RS03: try number = 287, reading sector 289842 -RS03: try number = 288, reading sector 291249 -RS03: try number = 289, reading sector 292656 -RS03: try number = 290, reading sector 294063 -RS03: try number = 291, reading sector 295470 -RS03: try number = 292, reading sector 296877 -RS03: try number = 293, reading sector 298284 -RS03: try number = 294, reading sector 299691 -RS03: try number = 295, reading sector 301098 -RS03: try number = 296, reading sector 302505 -RS03: try number = 297, reading sector 303912 -RS03: try number = 298, reading sector 305319 -RS03: try number = 299, reading sector 306726 -RS03: try number = 300, reading sector 308133 -RS03: try number = 301, reading sector 309540 -RS03: try number = 302, reading sector 310947 -RS03: try number = 303, reading sector 312354 -RS03: try number = 304, reading sector 313761 -RS03: try number = 305, reading sector 315168 -RS03: try number = 306, reading sector 316575 -RS03: try number = 307, reading sector 317982 -RS03: try number = 308, reading sector 319389 -RS03: try number = 309, reading sector 320796 -RS03: try number = 310, reading sector 322203 -RS03: try number = 311, reading sector 323610 -RS03: try number = 312, reading sector 325017 -RS03: try number = 313, reading sector 326424 -RS03: try number = 314, reading sector 327831 -RS03: try number = 315, reading sector 329238 -RS03: try number = 316, reading sector 330645 -RS03: try number = 317, reading sector 332052 -RS03: try number = 318, reading sector 333459 -RS03: try number = 319, reading sector 334866 -RS03: try number = 320, reading sector 336273 -RS03: try number = 321, reading sector 337680 -RS03: try number = 322, reading sector 339087 -RS03: try number = 323, reading sector 340494 -RS03: try number = 324, reading sector 341901 -RS03: try number = 325, reading sector 343308 -RS03: try number = 326, reading sector 344715 -RS03: try number = 327, reading sector 346122 -RS03: try number = 328, reading sector 347529 -** All layers tested -> no RS03 data found -.. trying layer size 1408 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 118272 -RS03: try number = 330, reading sector 119680 -RS03: try number = 331, reading sector 121088 -RS03: try number = 332, reading sector 122496 -RS03: try number = 333, reading sector 123904 -RS03: try number = 334, reading sector 125312 -RS03: try number = 335, reading sector 126720 -RS03: try number = 336, reading sector 128128 -RS03: try number = 337, reading sector 129536 -RS03: try number = 338, reading sector 130944 -RS03: try number = 339, reading sector 132352 -RS03: try number = 340, reading sector 133760 -RS03: try number = 341, reading sector 135168 -RS03: try number = 342, reading sector 136576 -RS03: try number = 343, reading sector 137984 -RS03: try number = 344, reading sector 139392 -RS03: try number = 345, reading sector 140800 -RS03: try number = 346, reading sector 142208 -RS03: try number = 347, reading sector 143616 -RS03: try number = 348, reading sector 145024 -RS03: try number = 349, reading sector 146432 -RS03: try number = 350, reading sector 147840 -RS03: try number = 351, reading sector 149248 -RS03: try number = 352, reading sector 150656 -RS03: try number = 353, reading sector 152064 -RS03: try number = 354, reading sector 153472 -RS03: try number = 355, reading sector 154880 -RS03: try number = 356, reading sector 156288 -RS03: try number = 357, reading sector 157696 -RS03: try number = 358, reading sector 159104 -RS03: try number = 359, reading sector 160512 -RS03: try number = 360, reading sector 161920 -RS03: try number = 361, reading sector 163328 -RS03: try number = 362, reading sector 164736 -RS03: try number = 363, reading sector 166144 -RS03: try number = 364, reading sector 167552 -RS03: try number = 365, reading sector 168960 -RS03: try number = 366, reading sector 170368 -RS03: try number = 367, reading sector 171776 -RS03: try number = 368, reading sector 173184 -RS03: try number = 369, reading sector 174592 -RS03: try number = 370, reading sector 176000 -RS03: try number = 371, reading sector 177408 -RS03: try number = 372, reading sector 178816 -RS03: try number = 373, reading sector 180224 -RS03: try number = 374, reading sector 181632 -RS03: try number = 375, reading sector 183040 -RS03: try number = 376, reading sector 184448 -RS03: try number = 377, reading sector 185856 -RS03: try number = 378, reading sector 187264 -RS03: try number = 379, reading sector 188672 -RS03: try number = 380, reading sector 190080 -RS03: try number = 381, reading sector 191488 -RS03: try number = 382, reading sector 192896 -RS03: try number = 383, reading sector 194304 -RS03: try number = 384, reading sector 195712 -RS03: try number = 385, reading sector 197120 -RS03: try number = 386, reading sector 198528 -RS03: try number = 387, reading sector 199936 -RS03: try number = 388, reading sector 201344 -RS03: try number = 389, reading sector 202752 -RS03: try number = 390, reading sector 204160 -RS03: try number = 391, reading sector 205568 -RS03: try number = 392, reading sector 206976 -RS03: try number = 393, reading sector 208384 -RS03: try number = 394, reading sector 209792 -RS03: try number = 395, reading sector 211200 -RS03: try number = 396, reading sector 212608 -RS03: try number = 397, reading sector 214016 -RS03: try number = 398, reading sector 215424 -RS03: try number = 399, reading sector 216832 -RS03: try number = 400, reading sector 218240 -RS03: try number = 401, reading sector 219648 -RS03: try number = 402, reading sector 221056 -RS03: try number = 403, reading sector 222464 -RS03: try number = 404, reading sector 223872 -RS03: try number = 405, reading sector 225280 -RS03: try number = 406, reading sector 226688 -RS03: try number = 407, reading sector 228096 -RS03: try number = 408, reading sector 229504 -RS03: try number = 409, reading sector 230912 -RS03: try number = 410, reading sector 232320 -RS03: try number = 411, reading sector 233728 -RS03: try number = 412, reading sector 235136 -RS03: try number = 413, reading sector 236544 -RS03: try number = 414, reading sector 237952 -RS03: try number = 415, reading sector 239360 -RS03: try number = 416, reading sector 240768 -RS03: try number = 417, reading sector 242176 -RS03: try number = 418, reading sector 243584 -RS03: try number = 419, reading sector 244992 -RS03: try number = 420, reading sector 246400 -RS03: try number = 421, reading sector 247808 -RS03: try number = 422, reading sector 249216 -RS03: try number = 423, reading sector 250624 -RS03: try number = 424, reading sector 252032 -RS03: try number = 425, reading sector 253440 -RS03: try number = 426, reading sector 254848 -RS03: try number = 427, reading sector 256256 -RS03: try number = 428, reading sector 257664 -RS03: try number = 429, reading sector 259072 -RS03: try number = 430, reading sector 260480 -RS03: try number = 431, reading sector 261888 -RS03: try number = 432, reading sector 263296 -RS03: try number = 433, reading sector 264704 -RS03: try number = 434, reading sector 266112 -RS03: try number = 435, reading sector 267520 -RS03: try number = 436, reading sector 268928 -RS03: try number = 437, reading sector 270336 -RS03: try number = 438, reading sector 271744 -RS03: try number = 439, reading sector 273152 -RS03: try number = 440, reading sector 274560 -RS03: try number = 441, reading sector 275968 -RS03: try number = 442, reading sector 277376 -RS03: try number = 443, reading sector 278784 -RS03: try number = 444, reading sector 280192 -RS03: try number = 445, reading sector 281600 -RS03: try number = 446, reading sector 283008 -RS03: try number = 447, reading sector 284416 -RS03: try number = 448, reading sector 285824 -RS03: try number = 449, reading sector 287232 -RS03: try number = 450, reading sector 288640 -RS03: try number = 451, reading sector 290048 -RS03: try number = 452, reading sector 291456 -RS03: try number = 453, reading sector 292864 -RS03: try number = 454, reading sector 294272 -RS03: try number = 455, reading sector 295680 -RS03: try number = 456, reading sector 297088 -RS03: try number = 457, reading sector 298496 -RS03: try number = 458, reading sector 299904 -RS03: try number = 459, reading sector 301312 -RS03: try number = 460, reading sector 302720 -RS03: try number = 461, reading sector 304128 -RS03: try number = 462, reading sector 305536 -RS03: try number = 463, reading sector 306944 -RS03: try number = 464, reading sector 308352 -RS03: try number = 465, reading sector 309760 -RS03: try number = 466, reading sector 311168 -RS03: try number = 467, reading sector 312576 -RS03: try number = 468, reading sector 313984 -RS03: try number = 469, reading sector 315392 -RS03: try number = 470, reading sector 316800 -RS03: try number = 471, reading sector 318208 -RS03: try number = 472, reading sector 319616 -RS03: try number = 473, reading sector 321024 -RS03: try number = 474, reading sector 322432 -RS03: try number = 475, reading sector 323840 -RS03: try number = 476, reading sector 325248 -RS03: try number = 477, reading sector 326656 -RS03: try number = 478, reading sector 328064 -RS03: try number = 479, reading sector 329472 -RS03: try number = 480, reading sector 330880 -RS03: try number = 481, reading sector 332288 -RS03: try number = 482, reading sector 333696 -RS03: try number = 483, reading sector 335104 -RS03: try number = 484, reading sector 336512 -RS03: try number = 485, reading sector 337920 -RS03: try number = 486, reading sector 339328 -RS03: try number = 487, reading sector 340736 -RS03: try number = 488, reading sector 342144 -RS03: try number = 489, reading sector 343552 -RS03: try number = 490, reading sector 344960 -RS03: try number = 491, reading sector 346368 -RS03: try number = 492, reading sector 347776 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. # Calling query_size() diff --git a/regtest/database/RS03i_strip_ecc_not b/regtest/database/RS03i_strip_ecc_not index 5a252360..83ab3cf7 100644 --- a/regtest/database/RS03i_strip_ecc_not +++ b/regtest/database/RS03i_strip_ecc_not @@ -130,511 +130,6 @@ RS03RecognizeImage: No EH, entering exhaustive search Scanning layers for signatures. - layer slice 0 ** All layers tested -> no RS03 data found -RS03RecognizeImage: trying image-derived layer sizes -.. trying layer size 81 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 1, reading sector 6804 -RS03: try number = 2, reading sector 6885 -RS03: try number = 3, reading sector 6966 -RS03: try number = 4, reading sector 7047 -RS03: try number = 5, reading sector 7128 -RS03: try number = 6, reading sector 7209 -RS03: try number = 7, reading sector 7290 -RS03: try number = 8, reading sector 7371 -RS03: try number = 9, reading sector 7452 -RS03: try number = 10, reading sector 7533 -RS03: try number = 11, reading sector 7614 -RS03: try number = 12, reading sector 7695 -RS03: try number = 13, reading sector 7776 -RS03: try number = 14, reading sector 7857 -RS03: try number = 15, reading sector 7938 -RS03: try number = 16, reading sector 8019 -RS03: try number = 17, reading sector 8100 -RS03: try number = 18, reading sector 8181 -RS03: try number = 19, reading sector 8262 -RS03: try number = 20, reading sector 8343 -RS03: try number = 21, reading sector 8424 -RS03: try number = 22, reading sector 8505 -RS03: try number = 23, reading sector 8586 -RS03: try number = 24, reading sector 8667 -RS03: try number = 25, reading sector 8748 -RS03: try number = 26, reading sector 8829 -RS03: try number = 27, reading sector 8910 -RS03: try number = 28, reading sector 8991 -RS03: try number = 29, reading sector 9072 -RS03: try number = 30, reading sector 9153 -RS03: try number = 31, reading sector 9234 -RS03: try number = 32, reading sector 9315 -RS03: try number = 33, reading sector 9396 -RS03: try number = 34, reading sector 9477 -RS03: try number = 35, reading sector 9558 -RS03: try number = 36, reading sector 9639 -RS03: try number = 37, reading sector 9720 -RS03: try number = 38, reading sector 9801 -RS03: try number = 39, reading sector 9882 -RS03: try number = 40, reading sector 9963 -RS03: try number = 41, reading sector 10044 -RS03: try number = 42, reading sector 10125 -RS03: try number = 43, reading sector 10206 -RS03: try number = 44, reading sector 10287 -RS03: try number = 45, reading sector 10368 -RS03: try number = 46, reading sector 10449 -RS03: try number = 47, reading sector 10530 -RS03: try number = 48, reading sector 10611 -RS03: try number = 49, reading sector 10692 -RS03: try number = 50, reading sector 10773 -RS03: try number = 51, reading sector 10854 -RS03: try number = 52, reading sector 10935 -RS03: try number = 53, reading sector 11016 -RS03: try number = 54, reading sector 11097 -RS03: try number = 55, reading sector 11178 -RS03: try number = 56, reading sector 11259 -RS03: try number = 57, reading sector 11340 -RS03: try number = 58, reading sector 11421 -RS03: try number = 59, reading sector 11502 -RS03: try number = 60, reading sector 11583 -RS03: try number = 61, reading sector 11664 -RS03: try number = 62, reading sector 11745 -RS03: try number = 63, reading sector 11826 -RS03: try number = 64, reading sector 11907 -RS03: try number = 65, reading sector 11988 -RS03: try number = 66, reading sector 12069 -RS03: try number = 67, reading sector 12150 -RS03: try number = 68, reading sector 12231 -RS03: try number = 69, reading sector 12312 -RS03: try number = 70, reading sector 12393 -RS03: try number = 71, reading sector 12474 -RS03: try number = 72, reading sector 12555 -RS03: try number = 73, reading sector 12636 -RS03: try number = 74, reading sector 12717 -RS03: try number = 75, reading sector 12798 -RS03: try number = 76, reading sector 12879 -RS03: try number = 77, reading sector 12960 -RS03: try number = 78, reading sector 13041 -RS03: try number = 79, reading sector 13122 -RS03: try number = 80, reading sector 13203 -RS03: try number = 81, reading sector 13284 -RS03: try number = 82, reading sector 13365 -RS03: try number = 83, reading sector 13446 -RS03: try number = 84, reading sector 13527 -RS03: try number = 85, reading sector 13608 -RS03: try number = 86, reading sector 13689 -RS03: try number = 87, reading sector 13770 -RS03: try number = 88, reading sector 13851 -RS03: try number = 89, reading sector 13932 -RS03: try number = 90, reading sector 14013 -RS03: try number = 91, reading sector 14094 -RS03: try number = 92, reading sector 14175 -RS03: try number = 93, reading sector 14256 -RS03: try number = 94, reading sector 14337 -RS03: try number = 95, reading sector 14418 -RS03: try number = 96, reading sector 14499 -RS03: try number = 97, reading sector 14580 -RS03: try number = 98, reading sector 14661 -RS03: try number = 99, reading sector 14742 -RS03: try number = 100, reading sector 14823 -RS03: try number = 101, reading sector 14904 -RS03: try number = 102, reading sector 14985 -RS03: try number = 103, reading sector 15066 -RS03: try number = 104, reading sector 15147 -RS03: try number = 105, reading sector 15228 -RS03: try number = 106, reading sector 15309 -RS03: try number = 107, reading sector 15390 -RS03: try number = 108, reading sector 15471 -RS03: try number = 109, reading sector 15552 -RS03: try number = 110, reading sector 15633 -RS03: try number = 111, reading sector 15714 -RS03: try number = 112, reading sector 15795 -RS03: try number = 113, reading sector 15876 -RS03: try number = 114, reading sector 15957 -RS03: try number = 115, reading sector 16038 -RS03: try number = 116, reading sector 16119 -RS03: try number = 117, reading sector 16200 -RS03: try number = 118, reading sector 16281 -RS03: try number = 119, reading sector 16362 -RS03: try number = 120, reading sector 16443 -RS03: try number = 121, reading sector 16524 -RS03: try number = 122, reading sector 16605 -RS03: try number = 123, reading sector 16686 -RS03: try number = 124, reading sector 16767 -RS03: try number = 125, reading sector 16848 -RS03: try number = 126, reading sector 16929 -RS03: try number = 127, reading sector 17010 -RS03: try number = 128, reading sector 17091 -RS03: try number = 129, reading sector 17172 -RS03: try number = 130, reading sector 17253 -RS03: try number = 131, reading sector 17334 -RS03: try number = 132, reading sector 17415 -RS03: try number = 133, reading sector 17496 -RS03: try number = 134, reading sector 17577 -RS03: try number = 135, reading sector 17658 -RS03: try number = 136, reading sector 17739 -RS03: try number = 137, reading sector 17820 -RS03: try number = 138, reading sector 17901 -RS03: try number = 139, reading sector 17982 -RS03: try number = 140, reading sector 18063 -RS03: try number = 141, reading sector 18144 -RS03: try number = 142, reading sector 18225 -RS03: try number = 143, reading sector 18306 -RS03: try number = 144, reading sector 18387 -RS03: try number = 145, reading sector 18468 -RS03: try number = 146, reading sector 18549 -RS03: try number = 147, reading sector 18630 -RS03: try number = 148, reading sector 18711 -RS03: try number = 149, reading sector 18792 -RS03: try number = 150, reading sector 18873 -RS03: try number = 151, reading sector 18954 -RS03: try number = 152, reading sector 19035 -RS03: try number = 153, reading sector 19116 -RS03: try number = 154, reading sector 19197 -RS03: try number = 155, reading sector 19278 -RS03: try number = 156, reading sector 19359 -RS03: try number = 157, reading sector 19440 -RS03: try number = 158, reading sector 19521 -RS03: try number = 159, reading sector 19602 -RS03: try number = 160, reading sector 19683 -RS03: try number = 161, reading sector 19764 -RS03: try number = 162, reading sector 19845 -RS03: try number = 163, reading sector 19926 -RS03: try number = 164, reading sector 20007 -** All layers tested -> no RS03 data found -.. trying layer size 82 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 165, reading sector 6888 -RS03: try number = 166, reading sector 6970 -RS03: try number = 167, reading sector 7052 -RS03: try number = 168, reading sector 7134 -RS03: try number = 169, reading sector 7216 -RS03: try number = 170, reading sector 7298 -RS03: try number = 171, reading sector 7380 -RS03: try number = 172, reading sector 7462 -RS03: try number = 173, reading sector 7544 -RS03: try number = 174, reading sector 7626 -RS03: try number = 175, reading sector 7708 -RS03: try number = 176, reading sector 7790 -RS03: try number = 177, reading sector 7872 -RS03: try number = 178, reading sector 7954 -RS03: try number = 179, reading sector 8036 -RS03: try number = 180, reading sector 8118 -RS03: try number = 181, reading sector 8200 -RS03: try number = 182, reading sector 8282 -RS03: try number = 183, reading sector 8364 -RS03: try number = 184, reading sector 8446 -RS03: try number = 185, reading sector 8528 -RS03: try number = 186, reading sector 8610 -RS03: try number = 187, reading sector 8692 -RS03: try number = 188, reading sector 8774 -RS03: try number = 189, reading sector 8856 -RS03: try number = 190, reading sector 8938 -RS03: try number = 191, reading sector 9020 -RS03: try number = 192, reading sector 9102 -RS03: try number = 193, reading sector 9184 -RS03: try number = 194, reading sector 9266 -RS03: try number = 195, reading sector 9348 -RS03: try number = 196, reading sector 9430 -RS03: try number = 197, reading sector 9512 -RS03: try number = 198, reading sector 9594 -RS03: try number = 199, reading sector 9676 -RS03: try number = 200, reading sector 9758 -RS03: try number = 201, reading sector 9840 -RS03: try number = 202, reading sector 9922 -RS03: try number = 203, reading sector 10004 -RS03: try number = 204, reading sector 10086 -RS03: try number = 205, reading sector 10168 -RS03: try number = 206, reading sector 10250 -RS03: try number = 207, reading sector 10332 -RS03: try number = 208, reading sector 10414 -RS03: try number = 209, reading sector 10496 -RS03: try number = 210, reading sector 10578 -RS03: try number = 211, reading sector 10660 -RS03: try number = 212, reading sector 10742 -RS03: try number = 213, reading sector 10824 -RS03: try number = 214, reading sector 10906 -RS03: try number = 215, reading sector 10988 -RS03: try number = 216, reading sector 11070 -RS03: try number = 217, reading sector 11152 -RS03: try number = 218, reading sector 11234 -RS03: try number = 219, reading sector 11316 -RS03: try number = 220, reading sector 11398 -RS03: try number = 221, reading sector 11480 -RS03: try number = 222, reading sector 11562 -RS03: try number = 223, reading sector 11644 -RS03: try number = 224, reading sector 11726 -RS03: try number = 225, reading sector 11808 -RS03: try number = 226, reading sector 11890 -RS03: try number = 227, reading sector 11972 -RS03: try number = 228, reading sector 12054 -RS03: try number = 229, reading sector 12136 -RS03: try number = 230, reading sector 12218 -RS03: try number = 231, reading sector 12300 -RS03: try number = 232, reading sector 12382 -RS03: try number = 233, reading sector 12464 -RS03: try number = 234, reading sector 12546 -RS03: try number = 235, reading sector 12628 -RS03: try number = 236, reading sector 12710 -RS03: try number = 237, reading sector 12792 -RS03: try number = 238, reading sector 12874 -RS03: try number = 239, reading sector 12956 -RS03: try number = 240, reading sector 13038 -RS03: try number = 241, reading sector 13120 -RS03: try number = 242, reading sector 13202 -RS03: try number = 243, reading sector 13284 -RS03: try number = 244, reading sector 13366 -RS03: try number = 245, reading sector 13448 -RS03: try number = 246, reading sector 13530 -RS03: try number = 247, reading sector 13612 -RS03: try number = 248, reading sector 13694 -RS03: try number = 249, reading sector 13776 -RS03: try number = 250, reading sector 13858 -RS03: try number = 251, reading sector 13940 -RS03: try number = 252, reading sector 14022 -RS03: try number = 253, reading sector 14104 -RS03: try number = 254, reading sector 14186 -RS03: try number = 255, reading sector 14268 -RS03: try number = 256, reading sector 14350 -RS03: try number = 257, reading sector 14432 -RS03: try number = 258, reading sector 14514 -RS03: try number = 259, reading sector 14596 -RS03: try number = 260, reading sector 14678 -RS03: try number = 261, reading sector 14760 -RS03: try number = 262, reading sector 14842 -RS03: try number = 263, reading sector 14924 -RS03: try number = 264, reading sector 15006 -RS03: try number = 265, reading sector 15088 -RS03: try number = 266, reading sector 15170 -RS03: try number = 267, reading sector 15252 -RS03: try number = 268, reading sector 15334 -RS03: try number = 269, reading sector 15416 -RS03: try number = 270, reading sector 15498 -RS03: try number = 271, reading sector 15580 -RS03: try number = 272, reading sector 15662 -RS03: try number = 273, reading sector 15744 -RS03: try number = 274, reading sector 15826 -RS03: try number = 275, reading sector 15908 -RS03: try number = 276, reading sector 15990 -RS03: try number = 277, reading sector 16072 -RS03: try number = 278, reading sector 16154 -RS03: try number = 279, reading sector 16236 -RS03: try number = 280, reading sector 16318 -RS03: try number = 281, reading sector 16400 -RS03: try number = 282, reading sector 16482 -RS03: try number = 283, reading sector 16564 -RS03: try number = 284, reading sector 16646 -RS03: try number = 285, reading sector 16728 -RS03: try number = 286, reading sector 16810 -RS03: try number = 287, reading sector 16892 -RS03: try number = 288, reading sector 16974 -RS03: try number = 289, reading sector 17056 -RS03: try number = 290, reading sector 17138 -RS03: try number = 291, reading sector 17220 -RS03: try number = 292, reading sector 17302 -RS03: try number = 293, reading sector 17384 -RS03: try number = 294, reading sector 17466 -RS03: try number = 295, reading sector 17548 -RS03: try number = 296, reading sector 17630 -RS03: try number = 297, reading sector 17712 -RS03: try number = 298, reading sector 17794 -RS03: try number = 299, reading sector 17876 -RS03: try number = 300, reading sector 17958 -RS03: try number = 301, reading sector 18040 -RS03: try number = 302, reading sector 18122 -RS03: try number = 303, reading sector 18204 -RS03: try number = 304, reading sector 18286 -RS03: try number = 305, reading sector 18368 -RS03: try number = 306, reading sector 18450 -RS03: try number = 307, reading sector 18532 -RS03: try number = 308, reading sector 18614 -RS03: try number = 309, reading sector 18696 -RS03: try number = 310, reading sector 18778 -RS03: try number = 311, reading sector 18860 -RS03: try number = 312, reading sector 18942 -RS03: try number = 313, reading sector 19024 -RS03: try number = 314, reading sector 19106 -RS03: try number = 315, reading sector 19188 -RS03: try number = 316, reading sector 19270 -RS03: try number = 317, reading sector 19352 -RS03: try number = 318, reading sector 19434 -RS03: try number = 319, reading sector 19516 -RS03: try number = 320, reading sector 19598 -RS03: try number = 321, reading sector 19680 -RS03: try number = 322, reading sector 19762 -RS03: try number = 323, reading sector 19844 -RS03: try number = 324, reading sector 19926 -RS03: try number = 325, reading sector 20008 -RS03: try number = 326, reading sector 20090 -RS03: try number = 327, reading sector 20172 -RS03: try number = 328, reading sector 20254 -** All layers tested -> no RS03 data found -.. trying layer size 83 -Scanning layers for signatures. -- layer slice 0 -RS03: try number = 329, reading sector 6972 -RS03: try number = 330, reading sector 7055 -RS03: try number = 331, reading sector 7138 -RS03: try number = 332, reading sector 7221 -RS03: try number = 333, reading sector 7304 -RS03: try number = 334, reading sector 7387 -RS03: try number = 335, reading sector 7470 -RS03: try number = 336, reading sector 7553 -RS03: try number = 337, reading sector 7636 -RS03: try number = 338, reading sector 7719 -RS03: try number = 339, reading sector 7802 -RS03: try number = 340, reading sector 7885 -RS03: try number = 341, reading sector 7968 -RS03: try number = 342, reading sector 8051 -RS03: try number = 343, reading sector 8134 -RS03: try number = 344, reading sector 8217 -RS03: try number = 345, reading sector 8300 -RS03: try number = 346, reading sector 8383 -RS03: try number = 347, reading sector 8466 -RS03: try number = 348, reading sector 8549 -RS03: try number = 349, reading sector 8632 -RS03: try number = 350, reading sector 8715 -RS03: try number = 351, reading sector 8798 -RS03: try number = 352, reading sector 8881 -RS03: try number = 353, reading sector 8964 -RS03: try number = 354, reading sector 9047 -RS03: try number = 355, reading sector 9130 -RS03: try number = 356, reading sector 9213 -RS03: try number = 357, reading sector 9296 -RS03: try number = 358, reading sector 9379 -RS03: try number = 359, reading sector 9462 -RS03: try number = 360, reading sector 9545 -RS03: try number = 361, reading sector 9628 -RS03: try number = 362, reading sector 9711 -RS03: try number = 363, reading sector 9794 -RS03: try number = 364, reading sector 9877 -RS03: try number = 365, reading sector 9960 -RS03: try number = 366, reading sector 10043 -RS03: try number = 367, reading sector 10126 -RS03: try number = 368, reading sector 10209 -RS03: try number = 369, reading sector 10292 -RS03: try number = 370, reading sector 10375 -RS03: try number = 371, reading sector 10458 -RS03: try number = 372, reading sector 10541 -RS03: try number = 373, reading sector 10624 -RS03: try number = 374, reading sector 10707 -RS03: try number = 375, reading sector 10790 -RS03: try number = 376, reading sector 10873 -RS03: try number = 377, reading sector 10956 -RS03: try number = 378, reading sector 11039 -RS03: try number = 379, reading sector 11122 -RS03: try number = 380, reading sector 11205 -RS03: try number = 381, reading sector 11288 -RS03: try number = 382, reading sector 11371 -RS03: try number = 383, reading sector 11454 -RS03: try number = 384, reading sector 11537 -RS03: try number = 385, reading sector 11620 -RS03: try number = 386, reading sector 11703 -RS03: try number = 387, reading sector 11786 -RS03: try number = 388, reading sector 11869 -RS03: try number = 389, reading sector 11952 -RS03: try number = 390, reading sector 12035 -RS03: try number = 391, reading sector 12118 -RS03: try number = 392, reading sector 12201 -RS03: try number = 393, reading sector 12284 -RS03: try number = 394, reading sector 12367 -RS03: try number = 395, reading sector 12450 -RS03: try number = 396, reading sector 12533 -RS03: try number = 397, reading sector 12616 -RS03: try number = 398, reading sector 12699 -RS03: try number = 399, reading sector 12782 -RS03: try number = 400, reading sector 12865 -RS03: try number = 401, reading sector 12948 -RS03: try number = 402, reading sector 13031 -RS03: try number = 403, reading sector 13114 -RS03: try number = 404, reading sector 13197 -RS03: try number = 405, reading sector 13280 -RS03: try number = 406, reading sector 13363 -RS03: try number = 407, reading sector 13446 -RS03: try number = 408, reading sector 13529 -RS03: try number = 409, reading sector 13612 -RS03: try number = 410, reading sector 13695 -RS03: try number = 411, reading sector 13778 -RS03: try number = 412, reading sector 13861 -RS03: try number = 413, reading sector 13944 -RS03: try number = 414, reading sector 14027 -RS03: try number = 415, reading sector 14110 -RS03: try number = 416, reading sector 14193 -RS03: try number = 417, reading sector 14276 -RS03: try number = 418, reading sector 14359 -RS03: try number = 419, reading sector 14442 -RS03: try number = 420, reading sector 14525 -RS03: try number = 421, reading sector 14608 -RS03: try number = 422, reading sector 14691 -RS03: try number = 423, reading sector 14774 -RS03: try number = 424, reading sector 14857 -RS03: try number = 425, reading sector 14940 -RS03: try number = 426, reading sector 15023 -RS03: try number = 427, reading sector 15106 -RS03: try number = 428, reading sector 15189 -RS03: try number = 429, reading sector 15272 -RS03: try number = 430, reading sector 15355 -RS03: try number = 431, reading sector 15438 -RS03: try number = 432, reading sector 15521 -RS03: try number = 433, reading sector 15604 -RS03: try number = 434, reading sector 15687 -RS03: try number = 435, reading sector 15770 -RS03: try number = 436, reading sector 15853 -RS03: try number = 437, reading sector 15936 -RS03: try number = 438, reading sector 16019 -RS03: try number = 439, reading sector 16102 -RS03: try number = 440, reading sector 16185 -RS03: try number = 441, reading sector 16268 -RS03: try number = 442, reading sector 16351 -RS03: try number = 443, reading sector 16434 -RS03: try number = 444, reading sector 16517 -RS03: try number = 445, reading sector 16600 -RS03: try number = 446, reading sector 16683 -RS03: try number = 447, reading sector 16766 -RS03: try number = 448, reading sector 16849 -RS03: try number = 449, reading sector 16932 -RS03: try number = 450, reading sector 17015 -RS03: try number = 451, reading sector 17098 -RS03: try number = 452, reading sector 17181 -RS03: try number = 453, reading sector 17264 -RS03: try number = 454, reading sector 17347 -RS03: try number = 455, reading sector 17430 -RS03: try number = 456, reading sector 17513 -RS03: try number = 457, reading sector 17596 -RS03: try number = 458, reading sector 17679 -RS03: try number = 459, reading sector 17762 -RS03: try number = 460, reading sector 17845 -RS03: try number = 461, reading sector 17928 -RS03: try number = 462, reading sector 18011 -RS03: try number = 463, reading sector 18094 -RS03: try number = 464, reading sector 18177 -RS03: try number = 465, reading sector 18260 -RS03: try number = 466, reading sector 18343 -RS03: try number = 467, reading sector 18426 -RS03: try number = 468, reading sector 18509 -RS03: try number = 469, reading sector 18592 -RS03: try number = 470, reading sector 18675 -RS03: try number = 471, reading sector 18758 -RS03: try number = 472, reading sector 18841 -RS03: try number = 473, reading sector 18924 -RS03: try number = 474, reading sector 19007 -RS03: try number = 475, reading sector 19090 -RS03: try number = 476, reading sector 19173 -RS03: try number = 477, reading sector 19256 -RS03: try number = 478, reading sector 19339 -RS03: try number = 479, reading sector 19422 -RS03: try number = 480, reading sector 19505 -RS03: try number = 481, reading sector 19588 -RS03: try number = 482, reading sector 19671 -RS03: try number = 483, reading sector 19754 -RS03: try number = 484, reading sector 19837 -RS03: try number = 485, reading sector 19920 -RS03: try number = 486, reading sector 20003 -RS03: try number = 487, reading sector 20086 -RS03: try number = 488, reading sector 20169 -RS03: try number = 489, reading sector 20252 -RS03: try number = 490, reading sector 20335 -RS03: try number = 491, reading sector 20418 -RS03: try number = 492, reading sector 20501 -** All layers tested -> no RS03 data found RS03RecognizeImage: no RS03 data found ...no augmented image detected. GetImageFingerprint(16): read & cached diff --git a/src/rs03-recognize.c b/src/rs03-recognize.c index ce3333b5..caf08cb6 100644 --- a/src/rs03-recognize.c +++ b/src/rs03-recognize.c @@ -372,14 +372,16 @@ static void free_recognize_context(recognize_context *rc) static int search_crc_blocks_for_layer_size(Image *image, guint64 image_sectors, guint64 layer_size, gint64 maxtries, - gint64 *trynumber_inout) + gint64 *trynumber_inout, int quiet) { recognize_context *rc = g_malloc0(sizeof(recognize_context)); int untested_layers; int layer, layer_sector; int i; - Verbose(".. trying layer size %" PRId64 "\n", (gint64)layer_size); - Verbose("Scanning layers for signatures.\n"); + if(!quiet) + { Verbose(".. trying layer size %" PRId64 "\n", (gint64)layer_size); + Verbose("Scanning layers for signatures.\n"); + } /* Prepare layout for all possible cases (8..170 roots) */ @@ -407,7 +409,7 @@ static int search_crc_blocks_for_layer_size(Image *image, guint64 image_sectors, for(layer_sector = 0; layer_sector < layer_size; layer_sector++) { CrcBlock *cb = (CrcBlock*)rc->ab->buf; - Verbose("- layer slice %d\n", layer_sector); + if(!quiet) Verbose("- layer slice %d\n", layer_sector); for(layer = 84; layer <= 247; layer++) { if(!rc->layer_checked[layer]) { gint64 sector; @@ -420,15 +422,16 @@ static int search_crc_blocks_for_layer_size(Image *image, guint64 image_sectors, goto mark_invalid_layer; if (++(*trynumber_inout) > maxtries && maxtries > 0) { - Verbose("RS03: max tries reached, stopping search\n"); + if(!quiet) Verbose("RS03: max tries reached, stopping search\n"); free_recognize_context(rc); return FALSE; } - Verbose("RS03: %s = %" PRId64 ", reading sector %" PRId64 "\n", - maxtries < 0 ? "try number" : "tries left", - maxtries < 0 ? *trynumber_inout : maxtries - *trynumber_inout, - sector); + if(!quiet) + Verbose("RS03: %s = %" PRId64 ", reading sector %" PRId64 "\n", + maxtries < 0 ? "try number" : "tries left", + maxtries < 0 ? *trynumber_inout : maxtries - *trynumber_inout, + sector); switch(image->type) { case IMAGE_FILE: @@ -470,17 +473,17 @@ static int search_crc_blocks_for_layer_size(Image *image, guint64 image_sectors, untested_layers--; } if(untested_layers <= 0) - { Verbose("** All layers tested -> no RS03 data found\n"); + { if(!quiet) Verbose("** All layers tested -> no RS03 data found\n"); free_recognize_context(rc); return FALSE; } } } - Verbose("-> %d untested layers remaining\n", untested_layers); + if(!quiet) Verbose("-> %d untested layers remaining\n", untested_layers); } - Verbose("-- layer size %" PRId64 " exhausted; %d layers remain untested\n", - (gint64)layer_size, untested_layers); + if(!quiet) Verbose("-- layer size %" PRId64 " exhausted; %d layers remain untested\n", + (gint64)layer_size, untested_layers); free_recognize_context(rc); return FALSE; } @@ -638,6 +641,46 @@ static int bruteforce_scan_for_crc_blocks(Image *image, guint64 image_sectors) return found; } +/* + * Multi-candidate layer size search helpers. + * Instead of guessing a single layer size from the image sector count, + * we try all known medium sizes (DM and NODM) plus image-derived sizes. + * search_crc_blocks_for_layer_size() validates each candidate via CRC, + * so wrong guesses fail fast and cheaply. + */ + +#define MAX_CANDIDATES 16 + +static void add_candidate(guint64 *candidates, int *n, guint64 layer_size) +{ int i; + + if(layer_size == 0 || *n >= MAX_CANDIDATES) + return; + + /* Deduplicate: skip if already present */ + for(i = 0; i < *n; i++) + if(candidates[i] == layer_size) + return; + + candidates[(*n)++] = layer_size; +} + +/* + * Original heuristic: pick layer size from total image sectors using + * strict-less-than thresholds. This is the best first guess for optical + * media where READ CAPACITY matches the medium type. + */ +static guint64 heuristic_layer_size(guint64 image_sectors) +{ + if(image_sectors < CDR_SIZE) return CDR_SIZE/GF_FIELDMAX; + else if(image_sectors < DVD_SL_SIZE) return DVD_SL_SIZE/GF_FIELDMAX; + else if(image_sectors < DVD_DL_SIZE) return DVD_DL_SIZE/GF_FIELDMAX; + else if(image_sectors < BD_SL_SIZE) return BD_SL_SIZE/GF_FIELDMAX; + else if(image_sectors < BD_DL_SIZE) return BD_DL_SIZE/GF_FIELDMAX; + else if(image_sectors < BDXL_TL_SIZE) return BDXL_TL_SIZE/GF_FIELDMAX; + else return BDXL_QL_SIZE/GF_FIELDMAX; +} + int RS03RecognizeImage(Image *image) { guint64 image_sectors; guint64 layer_size; @@ -706,56 +749,75 @@ int RS03RecognizeImage(Image *image) Verbose("RS03RecognizeImage: No EH, entering exhaustive search\n"); } - /* Determine image size in augmented case and try known medium sizes. */ - - trynumber = 0; + /* Try all known medium sizes as candidates. + For optical media in quick mode, we limit to a few likely candidates + to avoid excessive reads on slow drives. + For file images (exhaustive mode), we try all known sizes. + search_crc_blocks_for_layer_size() validates via CRC, so wrong + guesses are rejected definitively and cheaply. */ if(Closure->mediumSize >= GF_FIELDMAX) - { layer_size = Closure->mediumSize/GF_FIELDMAX; + { /* User override via -n: try only this size */ + layer_size = Closure->mediumSize/GF_FIELDMAX; Verbose("Image size set to %" PRId64 " (layer size %" PRId64 ")\n", Closure->mediumSize, layer_size); + + trynumber = 0; + if(search_crc_blocks_for_layer_size(image, image_sectors, layer_size, maxtries, &trynumber, FALSE)) + return TRUE; } else - { - const guint64 bd_sl_sz = (Closure->noBdrDefectManagement ? BD_SL_SIZE_NODM : BD_SL_SIZE); - const guint64 bd_dl_sz = (Closure->noBdrDefectManagement ? BD_DL_SIZE_NODM : BD_DL_SIZE); - const guint64 bd_tl_sz = (Closure->noBdrDefectManagement ? BDXL_TL_SIZE_NODM : BDXL_TL_SIZE); - const guint64 bd_ql_sz = (Closure->noBdrDefectManagement ? BDXL_QL_SIZE_NODM : BDXL_QL_SIZE); - if(image_sectors < CDR_SIZE) layer_size = CDR_SIZE/GF_FIELDMAX; - else if(image_sectors < DVD_SL_SIZE) layer_size = DVD_SL_SIZE/GF_FIELDMAX; - else if(image_sectors < DVD_DL_SIZE) layer_size = DVD_DL_SIZE/GF_FIELDMAX; - else if(image_sectors < bd_sl_sz) - layer_size = bd_sl_sz/GF_FIELDMAX; - else if(image_sectors < bd_dl_sz) - layer_size = bd_dl_sz/GF_FIELDMAX; - else if(image_sectors < bd_tl_sz) - layer_size = bd_tl_sz/GF_FIELDMAX; - else layer_size = bd_ql_sz/GF_FIELDMAX; - } - - if(search_crc_blocks_for_layer_size(image, image_sectors, layer_size, maxtries, &trynumber)) - return TRUE; - - /* Phase 1: If the known medium size didn't work and we're in exhaustive mode, - try deriving layer_size directly from the image file size. - For a complete RS03 augmented image, totalSectors = 255 * sectorsPerLayer, - so sectorsPerLayer = image_sectors / 255. This handles images created with - a custom -n value. Try the computed value and ±1 for rounding. */ - - if(maxtries < 0) /* only in exhaustive mode */ - { guint64 derived_layer_size = image_sectors / GF_FIELDMAX; - int offset; - - Verbose("RS03RecognizeImage: trying image-derived layer sizes\n"); - - for(offset = -1; offset <= 1; offset++) - { guint64 try_size = derived_layer_size + offset; - - if(try_size == 0 || try_size == layer_size) - continue; /* skip zero or already-tried size */ + { guint64 candidates[MAX_CANDIDATES]; + int n_candidates = 0; + int max_to_try; + int i; + + if(image->type == IMAGE_MEDIUM && maxtries > 0) + { /* Quick mode for optical media: heuristic first, then alternatives */ + guint64 heuristic = heuristic_layer_size(image_sectors); + add_candidate(candidates, &n_candidates, heuristic); + /* Try the NODM counterpart of the heuristic's BD tier */ + add_candidate(candidates, &n_candidates, BD_SL_SIZE_NODM/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BD_DL_SIZE_NODM/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BDXL_TL_SIZE_NODM/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BDXL_QL_SIZE_NODM/GF_FIELDMAX); + /* Image-derived as fallback */ + add_candidate(candidates, &n_candidates, image_sectors/GF_FIELDMAX); + max_to_try = 3; /* limit candidates in quick mode */ + } + else + { /* Exhaustive mode for file images: try all known sizes */ + /* Heuristic first — matches old single-guess behavior for standard images */ + add_candidate(candidates, &n_candidates, heuristic_layer_size(image_sectors)); + /* Image-derived for exact-size images */ + add_candidate(candidates, &n_candidates, image_sectors/GF_FIELDMAX); + if(image_sectors > 0) + { add_candidate(candidates, &n_candidates, image_sectors/GF_FIELDMAX - 1); + add_candidate(candidates, &n_candidates, image_sectors/GF_FIELDMAX + 1); + } + /* All standard medium sizes */ + add_candidate(candidates, &n_candidates, DVD_DL_SIZE/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BD_SL_SIZE/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BD_SL_SIZE_NODM/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, DVD_SL_SIZE/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BD_DL_SIZE/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BD_DL_SIZE_NODM/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, CDR_SIZE/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BDXL_TL_SIZE/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BDXL_TL_SIZE_NODM/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BDXL_QL_SIZE/GF_FIELDMAX); + add_candidate(candidates, &n_candidates, BDXL_QL_SIZE_NODM/GF_FIELDMAX); + max_to_try = n_candidates; /* try all in exhaustive mode */ + } - if(search_crc_blocks_for_layer_size(image, image_sectors, try_size, maxtries, &trynumber)) + for(i = 0; i < n_candidates && i < max_to_try; i++) + { trynumber = 0; + if(search_crc_blocks_for_layer_size(image, image_sectors, candidates[i], maxtries, &trynumber, i > 0)) + { if(i > 0) + Verbose("RS03RecognizeImage: found data with candidate layer size %" PRId64 "\n", + (gint64)candidates[i]); return TRUE; + } } } diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 00000000..2940d9ac --- /dev/null +++ b/tests/README.md @@ -0,0 +1,368 @@ +# dvdisaster Test Suite + +This directory contains the Python/pytest integration test suite for dvdisaster. All regression tests have been migrated from the legacy bash-based framework in `regtest/` to this declarative, maintainable Python framework. The bash tests in `regtest/config.txt` are all disabled; the golden reference files in `regtest/database/` are still used by the Python tests. + +## Quick Start + +```bash +# Build dvdisaster first +./configure --with-gui=no && make -j$(nproc) + +# Run all tests +pip install pytest +python3 -m pytest tests/ -v + +# Run a single codec +python3 -m pytest tests/test_rs01.py -v + +# Run a specific test class +python3 -m pytest tests/test_rs02.py::TestRS02Verify -v + +# Run a specific test +python3 -m pytest "tests/test_rs01.py::TestRS01Verify::test_golden[good]" -v +``` + +Master images are cached in `/var/tmp/regtest/` (created on first run, reused thereafter). The first run is slower because it creates these images. + +## Test Count + +| File | Tests | Status | +|------|------:|--------| +| `test_rs01.py` | 85 | Migrated from bash | +| `test_rs02.py` | 76 | Migrated from bash | +| `test_rs03f.py` | 85 | Migrated from bash | +| `test_rs03i.py` | 142 | Migrated from bash | +| `test_multipass_read.py` | 4 | Semantic tests (all codecs) | +| `test_rs03_recognize.py` | 4 | Semantic tests (RS03 recognition) | +| `test_framework.py` | 28 | Unit tests for the framework itself | +| **Total** | **424** | | + +## Architecture + +### Framework (`framework.py`) + +The framework provides a declarative DSL for defining regression tests. Instead of writing imperative bash scripts, tests are declared as data: + +```python +class TestRS01Verify(GoldenTestSuite): + codec = "RS01" + codec_prefix = "RS01" + master = "rs01-master.iso" + master_ecc = "rs01-master.ecc" + + tests = [ + GoldenTest("good", action="-t", use_master=True, ecc="master_ecc"), + GoldenTest("missing_sectors", action="-t", + damage=[Erase("1500-1673"), Erase("13420-14109")], + ecc="master_ecc"), + ] +``` + +The `GoldenTestSuite` base class converts each `GoldenTest` entry into a parametrized pytest test case at collection time. The execution flow for each test: + +1. Create temp work directory (pytest `tmp_path`) +2. Resolve image path (master, custom, or new empty path) +3. Apply damage operations (erase sectors, set bytes, truncate, pad, append files) +4. Handle simulated CD reading (`sim_cd`) if specified +5. Run: `dvdisaster --regtest --no-progress -i [-e] [extra_args]` +6. Clean output (strip headers, paths, memory-leak lines, `ignore_lines` patterns) +7. Compare cleaned output against golden reference file +8. Verify MD5 checksums if specified in the golden file + +### Damage Operations + +Atomic operations applied to images before running dvdisaster: + +| Operation | Description | Implementation | +|-----------|-------------|----------------| +| `Erase("15800-16199")` | Zero out sector range | CLI: `--erase` | +| `Erase("100:hardware failure")` | Erase with sim label | CLI: `--erase` | +| `Erase("500", fill_unreadable=0)` | Erase + fill pattern | CLI: `--erase --fill-unreadable` | +| `Byteset(4096, 100, 17)` | Set byte at sector/offset | CLI: `--byteset` | +| `Truncate(20500)` | Truncate image to N sectors | CLI: `--truncate` | +| `PadBytes(55)` | Append N zero bytes | Python-level | +| `PadSectors(17)` | Append N×2048 zero bytes | Python-level | +| `AppendFile(path)` | Append file contents | Python-level | + +CLI operations invoke `dvdisaster --debug` to modify the image. Python-level operations modify the file directly with `open()`. + +### SimCD (Simulated CD Reading) + +For scan and read tests, `SimCD` simulates reading from a damaged disc: + +```python +GoldenTest("scan_missing_sectors", action="-s", + sim_cd=SimCD(source="master", + damage=[Erase("1000-1049"), Erase("21230")])) +``` + +When `sim_cd` is present, the framework: +1. Copies the source image to `sim.iso` in the work directory +2. Applies sim-cd damage operations +3. Adds `--debug --sim-cd= --fixed-speed-values --spinup-delay=0` to the command + +### Golden Files + +Golden reference files live in `regtest/database/` and have this format: + +``` + + + +``` + +Platform-specific variants are supported: `RS01_good.darwin` (macOS), `RS01_good.win` (Windows), with fallback to the base file. + +### Output Cleaning + +Before comparison, output is cleaned to ensure reproducibility: + +- Strip version/copyright header (first 3 lines) +- Remove `dvdisaster: No memory leaks found.` lines +- Remove temp directory paths and Windows drive letters +- Remove `regtest/` prefix from paths +- Remove lines matching `ignore_lines` regex patterns (mirrors bash `IGNORE_LOG_LINE`) + +## Test Files + +### `test_rs01.py` -- RS01 (Separate ECC File) + +RS01 creates a separate `.ecc` file alongside the image. Tests use a 21000-sector master image and a pre-built master ECC file. + +| Class | Tests | What it covers | +|-------|------:|----------------| +| `TestRS01Verify` | 28 | Image+ECC verification: good, truncated, missing sectors, bad bytes, CRC errors, cross-codec detection | +| `TestRS01Create` | 11 | ECC creation: normal, with existing image/ECC, missing image, permission errors, non-blocksize images | +| `TestRS01Repair` | 18 | Image repair: truncated, missing sectors, bad bytes, permission errors, with wrong ECC fingerprint | +| `TestRS01Scan` | 22 | Simulated CD scanning: good/defective media, range errors, skip sizes, hardware failures, DSM | +| `TestRS01ReadLinear` | 38 | Linear reading: good/defective media, range errors, TAO tail, fingerprint mismatch, CRC errors, multipass | +| `TestRS01ReadAdaptive` | 25 | Adaptive reading: same scenarios using divide-and-conquer algorithm, hardware failures, DSM | + +Notable test patterns: +- **Cross-codec detection**: Verifying RS02/RS03 images with RS01 tool correctly identifies the codec mismatch +- **TAO tail**: Trailing garbage bytes from Track-At-Once burning; dvdisaster should detect and handle them +- **Hardware failure simulation**: `Erase("5000:hardware failure")` marks sectors as having drive-level read errors +- **Multipass reading**: `--read-medium=3` tests multiple reading passes with progressively more sectors recovered + +### `test_rs02.py` -- RS02 (Augmented Image) + +RS02 embeds ECC data directly in the image (no separate `.ecc` file). Tests use a 30000-sector raw image augmented to 35000 sectors. + +| Class | Tests | What it covers | +|-------|------:|----------------| +| `TestRS02Strip` | 2 | Stripping ECC data from augmented images | +| `TestRS02Verify` | 31 | Image verification: good, truncated, padded, bad/missing headers, modulo glitch, cross-codec | +| `TestRS02Create` | 18 | ECC creation: normal, from other codecs, after read, partial read, non-blocksize | +| `TestRS02Repair` | 25 | Image repair: truncated, trailing bytes/TAO/garbage, large file, permission errors, cross-codec | +| `TestRS02Scan` | 22 | Simulated CD scanning: good/defective media, TAO tail, modulo glitch, cross-codec | +| `TestRS02ReadLinear` | 28 | Linear reading: good/defective media, TAO tail, modulo glitch, CRC errors, cross-codec | +| `TestRS02ReadAdaptive` | 22 | Adaptive reading: same scenarios using divide-and-conquer | + +Notable test patterns: +- **Modulo glitch**: Simulates pre-0.79.5 dvdisaster headers where sector size info was missing. Uses `_apply_old_style_headers()` to patch 21 header positions with corrected checksums +- **Header modulo glitch (HMG) image**: A 274300-sector image specifically sized to trigger the modulo-glitch code path +- **Large file test**: Creates a 223456-sector (~450MB) image to test repair across all three RS02 sections (data, CRC, ECC) +- **Cross-codec creation**: Tests creating RS02 ECC on images that already have RS01/RS03 ECC data + +### `test_rs03f.py` -- RS03f (File-Based ECC, RS03 Algorithm) + +RS03f creates a separate `.ecc` file (like RS01) but uses the RS03 algorithm. Tests use a 21000-sector master image with 20-root redundancy. + +| Class | Tests | What it covers | +|-------|------:|----------------| +| `TestRS03fVerify` | 34 | Image+ECC verification: good, truncated, padded, plus56 bytes, CRC errors, missing sectors, DSM, ecc file manipulation | +| `TestRS03fCreate` | 14 | ECC creation: normal, missing image, permissions, plus56, after read, cross-codec (RS01/RS02/RS03i/RS03f) | +| `TestRS03fRepair` | 26 | Image repair: good, missing sectors, border cases, plus56 variants, extra sectors, truncation, ecc damage | +| `TestRS03fScan` | 18 | Simulated CD scanning: good/defective media, TAO tail, incompatible ecc, header damage, cross-section errors | +| `TestRS03fReadLinear` | 18 | Linear reading: good/defective media, TAO tail, incompatible ecc, CRC errors, DSM, multipass | +| `TestRS03fReadAdaptive` | 1 | Adaptive reading: good media baseline | + +### `test_rs03i.py` -- RS03i (Image-Embedded ECC, RS03 Algorithm) + +RS03i embeds ECC data directly in the image (like RS02) using the RS03 algorithm. Tests use a 21000-sector raw image augmented to ~25000 sectors. Includes resource-intensive tests with large master images (~460MB) for header recovery and root discovery. + +| Class | Tests | What it covers | +|-------|------:|----------------| +| `TestRS03iStrip` | 2 | Stripping ECC data from augmented images | +| `TestRS03iVerify` | 48 | Image verification: good, truncated, padded, plus56, CRC errors, missing sectors, DSM, header recovery, root discovery, cross-codec, custom -n | +| `TestRS03iCreate` | 20 | ECC creation: normal, permissions, from other codecs, non-blocksize, layer multiple, no padding, after read | +| `TestRS03iFix` | 27 | Image repair: good, truncated, trailing bytes/TAO/garbage, border cases, cross-codec, header recovery, custom -n with bruteforce | +| `TestRS03iScan` | 33 | Simulated CD scanning: good/defective, TAO tail, header recovery, root discovery, cross-codec, padding errors | +| `TestRS03iReadLinear` | 29 | Linear reading: good/defective, header recovery (exhaustive), cross-codec, DSM, multipass, padding errors | + +Notable RS03i-specific patterns: +- **Large master images**: 235219-sector (~460MB) images for header recovery and root discovery tests +- **Root discovery**: Tests that verify dvdisaster can determine the ECC root count (8 or 170) from a damaged image +- **Custom -n**: Tests with explicit `-n` override for ECC size, including bruteforce header recovery +- **Layer multiple / no padding**: Edge cases where image size aligns exactly with RS03 internal layout + +### `test_multipass_read.py` -- Multipass Reading (All Codecs) + +Semantic tests (not golden-file) for multipass reading across RS01, RS02, RS03f (file mode), and RS03i (image mode). These replace flaky bash tests where golden-file comparison was unreliable due to timing-dependent output ordering. + +Each test: +1. Creates a 21000-sector image with damaged sectors (15900-16099) +2. Creates codec-specific ECC data +3. Prepares a simulated CD with additional damage and "readable in pass 3" sectors +4. Reads with `--read-medium=3` (3 passes) +5. Asserts semantic properties: CRC errors reported, pass transitions occur, correct final sector counts + +### `test_rs03_recognize.py` -- RS03 Recognition Robustness + +Semantic tests for RS03 ECC recognition edge cases: +- **BD-RE read-back**: Image padded with extra sectors (the drive returns full formatted capacity) +- **Headerless recognition**: RS03 ECC data found even when the primary header is missing +- **NODM without flag**: Images created with `--no-bdr-defect-management` recognized without the flag + +### `test_framework.py` -- Framework Unit Tests + +Unit tests for the framework itself (28 tests): +- Damage operation CLI argument generation +- Golden file parsing (MD5 extraction, output extraction) +- Output cleaning (header stripping, path removal, memory-leak filtering) +- `GoldenTest` and `SimCD` dataclass construction + +## Bash vs Python: Comparison + +### Side-by-Side Example + +The same test in both frameworks: + +**Bash** (`regtest/rs01.bash`): +```bash +if try "scanning defective media, no ecc" scan_defective_no_ecc; then ( + cp $MASTERISO $SIMISO + $NEWVER --debug -i$SIMISO --erase 100-200 >>$LOGFILE 2>&1 + $NEWVER --debug -i$SIMISO --erase 766 >>$LOGFILE 2>&1 + $NEWVER --debug -i$SIMISO --erase 2410 >>$LOGFILE 2>&1 + + extra_args="--debug --sim-cd=$SIMISO --fixed-speed-values" + run_regtest scan_defective_no_ecc "--spinup-delay=0 -s" $ISODIR/no.iso $ISODIR/no.ecc +) & limit_jobs; fi +``` + +**Python** (`tests/test_rs01.py`): +```python +GoldenTest("scan_defective_no_ecc", action="-s", + image="no.iso", ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("100-200"), Erase("766"), Erase("2410"), + ]), + extra_args=["--debug"]), +``` + +### Comparison Table + +| Aspect | Bash (`regtest/`) | Python (`tests/`) | +|--------|-------------------|-------------------| +| **Test count** | 569 (145 RS01 + 150 RS02 + 160 RS03i + 114 RS03f) | 424 (85 RS01 + 76 RS02 + 85 RS03f + 142 RS03i + 8 semantic + 28 framework) | +| **Migration status** | All disabled | All codecs migrated | +| **Test declaration** | Imperative shell scripts (~100-300 LOC each) | Declarative DSL (data + base class) | +| **Lines per test** | 5-15 lines of bash | 2-5 lines of Python (golden tests) | +| **Assertion style** | Golden-file diff only | Hybrid: golden-file + semantic assertions | +| **Timing-sensitive tests** | Flaky (exact output match) | Stable (semantic property checks) | +| **Golden files** | Same `regtest/database/` directory | Same files, reused in place | +| **Master image caching** | `/var/tmp/regtest/` | Same directory, compatible | +| **Parallelism** | `MAX_JOBS` background subshells | pytest-xdist (future), sequential now | +| **Platform variants** | Manual `.darwin`/`.win` suffix files | Same files, auto-detected | +| **Output cleaning** | `grep -v`, `sed`, shell filters | `clean_output()` function | +| **CI integration** | `regtest/runtests.sh` in workflow | `python3 -m pytest tests/` in workflow | +| **Run time (RS01+RS02)** | ~45 min | ~75 min (sequential; parallelism planned) | +| **Error messages** | Binary pass/fail | Unified diff with context | +| **Skip mechanism** | `config.txt` toggles | `pytest.skip()` with reason | +| **Dependencies** | bash, coreutils | Python 3.6+, pytest | +| **Debugging** | Manual `diff` against newlog | `--tb=long`, `-s` for stdout, `--pdb` | + +### What Stayed the Same + +- Golden reference files in `regtest/database/` are reused as-is (no conversion needed) +- Master images cached in `/var/tmp/regtest/` are shared between both frameworks +- The `--regtest` and `--no-progress` flags are used identically +- Output cleaning logic mirrors the bash `run_regtest` filtering exactly +- Both frameworks run in CI via `.github/workflows/tests.yml` + +### What Changed + +- **Timing-sensitive tests** (multipass reading) use semantic assertions instead of golden-file comparison, eliminating platform-dependent flakiness +- **Boilerplate elimination**: damage setup, sim-cd wiring, golden file lookup, and output cleaning are handled by the framework, not repeated in each test +- **`--debug` for sim-cd** is now automatically added by the framework (required by `--fixed-speed-values`), reducing a common source of test-writing errors +- **`ignore_lines`** parameter in `clean_output()` replaces bash `IGNORE_LOG_LINE` for filtering timing-dependent output lines +- **`AppendFile`** damage operation replaces `cat file >> image` for TAO tail tests + +## Migration Status + +All codecs have been fully migrated from bash to Python. All bash tests are disabled in `regtest/config.txt`. + +| Codec | Bash Tests (disabled) | Python Tests | Status | +|-------|----------------------|-------------|--------| +| RS01 | 145 | 85 | Migrated | +| RS02 | 150 | 76 | Migrated | +| RS03f | 114 | 85 | Migrated | +| RS03i | 160 | 142 | Migrated | + +Python test counts differ from bash because: +- Many bash tests that used multi-step setup map to compact declarative `GoldenTest` entries (fewer methods, same coverage) +- Some duplicate bash entries were consolidated +- `read_multipass_ecc_partial_success` tests live in the shared `test_multipass_read.py` + +## Adding New Tests + +### Golden test (declarative) + +Add to the `tests` list in the appropriate `GoldenTestSuite` subclass: + +```python +GoldenTest("my_new_test", action="-t", + damage=[Erase("100-200"), Byteset(300, 0, 255)], + ecc="master_ecc"), +``` + +Then run the test to generate output, and create the golden file from the actual output. + +### Semantic test (plain method) + +Add a method to the test class: + +```python +def test_my_complex_scenario(self, tmp_path): + """Tests that can't use golden comparison.""" + # Custom setup, assertions, etc. +``` + +### Framework test + +Add to `test_framework.py` for testing framework internals (damage ops, parsing, cleaning). + +## Slow Tests and CI Strategy + +Tests that create large master images (200+ MB) are marked with `@pytest.mark.slow` and skipped by default. Run them with: + +```bash +python3 -m pytest tests/ -v --run-slow +``` + +### What counts as slow + +Tests are marked slow if they create or depend on large master images that take 2+ minutes to generate: +- RS03i large-image tests (header recovery, root discovery): 235219-sector (~460MB) image +- RS02 modulo-glitch tests: 274300-sector (~535MB) image +- RS02 large-file repair test: 223456-sector (~436MB) image + +Currently 41 tests are marked slow (24 in RS03i, 17 in RS02). + +### CI strategy + +| Platform | Pytest runs on | Slow tests | Cache | +|----------|---------------|------------|-------| +| Linux | CLI build only | Only on schedule/tag/manual | `/var/tmp/regtest` | +| macOS | CLI build only | No (skipped) | `/var/tmp/regtest` | +| Windows | CLI build only | No (skipped) | `C:\msys64\var\tmp\regtest` | + +GUI and CLI builds produce identical regression test output (tests use `--regtest` mode), so we only run pytest on CLI builds to halve CI time. + +Slow tests (`--run-slow`) run only on Linux and only when triggered by: +- **Weekly schedule** — every Monday 3am UTC +- **Release tags** — pushes matching `v*` +- **Manual dispatch** — via GitHub Actions "Run workflow" button + +On regular pushes and PRs, slow tests are skipped on all platforms. Master images are cached via `actions/cache` to avoid recreating them on every run. diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 00000000..47873638 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,157 @@ +""" +Pytest framework for dvdisaster integration tests. + +These tests invoke the dvdisaster binary and verify its behavior. + +Requirements: + - dvdisaster binary built and available at project root + - pytest (`pip install pytest`) + +Run: + pytest tests/ -v # skip slow tests (default) + pytest tests/ -v --run-slow # include large-image tests +""" + +import os +import shutil +import subprocess +import tempfile + +import pytest + +from framework import pytest_generate_tests, filter_empty_golden_placeholders # noqa: F401 + + +def pytest_addoption(parser): + parser.addoption( + "--run-slow", action="store_true", default=False, + help="Run slow tests (large-image creation, 3+ min each)" + ) + + +def pytest_configure(config): + config.addinivalue_line( + "markers", "slow: marks tests as slow (large image I/O, deselected by default)" + ) + + +def pytest_collection_modifyitems(config, items): + filter_empty_golden_placeholders(items) + if config.getoption("--run-slow"): + return + skip_slow = pytest.mark.skip(reason="need --run-slow option to run") + for item in items: + if "slow" in item.keywords: + item.add_marker(skip_slow) + + +# Project root: one level up from tests/ +PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +DVDISASTER = os.path.join(PROJECT_ROOT, "dvdisaster") + + +def _find_binary(): + """Find the dvdisaster binary, checking common locations.""" + candidates = [ + DVDISASTER, + DVDISASTER + ".exe", # Windows/MSYS2 + ] + for path in candidates: + if os.path.isfile(path) and os.access(path, os.X_OK): + return path + return None + + +@pytest.fixture(scope="session") +def dvdisaster_bin(): + """Path to the dvdisaster binary. Skips all tests if not found.""" + binary = _find_binary() + if binary is None: + pytest.skip( + f"dvdisaster binary not found at {DVDISASTER}. " + "Build it first: ./configure --with-gui=no && make -j$(nproc)" + ) + return binary + + +@pytest.fixture +def work_dir(tmp_path): + """Provide a temporary working directory for a single test.""" + return tmp_path + + +def run_dvdisaster(binary, *args, check=True): + """Run dvdisaster with given arguments, return CompletedProcess. + + Captures stdout+stderr combined (dvdisaster mixes both). + Raises subprocess.CalledProcessError if check=True and exit code != 0. + """ + cmd = [binary, "--regtest", "--debug"] + list(args) + result = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + timeout=120, + ) + # Decode output, tolerant of encoding issues + result.text = result.stdout.decode("utf-8", errors="replace") + if check and result.returncode != 0: + raise subprocess.CalledProcessError( + result.returncode, cmd, output=result.stdout + ) + return result + + +def create_random_image(binary, path, sectors): + """Create a random test image with the given number of sectors.""" + run_dvdisaster(binary, f"-i{path}", f"--random-image", str(sectors)) + + +def augment_image_rs03(binary, path, medium_size=None, extra_args=None): + """Augment an image with RS03 ECC data. + + Args: + binary: path to dvdisaster + path: path to the image file + medium_size: target medium size (sector count or name like "BDNODM") + extra_args: additional CLI args as list + """ + args = [f"-i{path}", "-mRS03", "--set-version", "0.80", "-c"] + if medium_size is not None: + args.extend(["-n", str(medium_size)]) + if extra_args: + args.extend(extra_args) + run_dvdisaster(binary, *args) + + +def scan_image(binary, image_path, sim_cd=None, ecc_path=None, extra_args=None): + """Scan an image and return the output text. + + Args: + binary: path to dvdisaster + image_path: path for the output image (-i) + sim_cd: if set, simulate reading from this file as a CD + ecc_path: optional ecc file path (-e) + extra_args: additional CLI args as list + + Returns: + The combined stdout+stderr output as a string. + """ + args = ["--spinup-delay=0", "-s", f"-i{image_path}"] + if sim_cd: + args.extend([f"--sim-cd={sim_cd}", "--fixed-speed-values"]) + if ecc_path: + args.extend([f"-e{ecc_path}"]) + if extra_args: + args.extend(extra_args) + result = run_dvdisaster(binary, *args, check=False) + return result.text + + +def erase_sectors(binary, image_path, spec): + """Erase sectors in an image file. + + Args: + spec: sector spec like "1000" or "1000-1010" or "1000:hardware failure" + """ + run_dvdisaster(binary, f"-i{image_path}", f"--erase", spec) diff --git a/tests/framework.py b/tests/framework.py new file mode 100644 index 00000000..6792c0e1 --- /dev/null +++ b/tests/framework.py @@ -0,0 +1,612 @@ +""" +Golden-test framework for dvdisaster regression tests. + +Provides a declarative DSL for defining regression tests that compare +dvdisaster CLI output against golden reference files from regtest/database/. +""" + +import hashlib +import os +import platform +import re +import shutil +import subprocess +import sys +from dataclasses import dataclass, field +from typing import List, Optional, Tuple + +from filelock import FileLock + +# --------------------------------------------------------------------------- +# Paths +# --------------------------------------------------------------------------- + +_PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +_DVDISASTER = os.path.join(_PROJECT_ROOT, "dvdisaster") +_DATABASE = os.path.join(_PROJECT_ROOT, "regtest", "database") +_ISODIR = "/var/tmp/regtest" +_TMPDIR = "/dev/shm" if os.path.isdir("/dev/shm") else "/var/tmp" + +# --------------------------------------------------------------------------- +# 1. Damage Operations +# --------------------------------------------------------------------------- + + +@dataclass +class Erase: + """Erase sectors: ``--erase ``.""" + spec: str + fill_unreadable: Optional[int] = None + + def cli_args(self) -> List[str]: + args = ["--erase", self.spec] + if self.fill_unreadable is not None: + args.append("--fill-unreadable={}".format(self.fill_unreadable)) + return args + + +@dataclass +class Byteset: + """Set a byte in a sector: ``--byteset sector,offset,value``.""" + sector: int + offset: int + value: int + + def cli_args(self) -> List[str]: + return ["--byteset", "{},{},{}".format(self.sector, self.offset, self.value)] + + +@dataclass +class Truncate: + """Truncate image to N sectors: ``--truncate=N``.""" + sectors: int + + def cli_args(self) -> List[str]: + return ["--truncate={}".format(self.sectors)] + + +@dataclass +class PadBytes: + """Append N zero bytes (Python-level, not CLI).""" + count: int + + @property + def pad_size(self) -> int: + return self.count + + +@dataclass +class PadSectors: + """Append N * 2048 zero bytes (Python-level, not CLI).""" + count: int + + @property + def pad_size(self) -> int: + return self.count * 2048 + + +@dataclass +class AppendFile: + """Append contents of a file to the image (Python-level, not CLI).""" + path: str + + +# --------------------------------------------------------------------------- +# 2. Golden File Parser +# --------------------------------------------------------------------------- + + +def parse_golden_file(path): + # type: (str) -> Tuple[Optional[str], Optional[str], str] + """Parse a golden reference file. + + Returns (image_md5, ecc_md5, expected_output). + MD5 values are None when the golden file says "ignore". + expected_output is everything from line 3 onwards (after the two MD5 lines). + """ + with open(path, "r") as f: + lines = f.readlines() + + image_md5 = lines[0].strip() if len(lines) > 0 else None + ecc_md5 = lines[1].strip() if len(lines) > 1 else None + + if image_md5 == "ignore": + image_md5 = None + if ecc_md5 == "ignore": + ecc_md5 = None + + expected_output = "".join(lines[2:]) + return image_md5, ecc_md5, expected_output + + +def resolve_golden_path(base_path): + # type: (str) -> str + """Resolve platform-specific golden file variant. + + Checks for .darwin or .win suffixes on macOS/Windows respectively, + falling back to the base path. + """ + system = platform.system() + if system == "Darwin": + variant = base_path + ".darwin" + if os.path.isfile(variant): + return variant + elif system == "Windows" or "MSYSTEM" in os.environ: + variant = base_path + ".win" + if os.path.isfile(variant): + return variant + return base_path + + +# --------------------------------------------------------------------------- +# 3. Output Cleaning +# --------------------------------------------------------------------------- + +# Pre-compiled patterns +_RE_MEMLEAK = re.compile(r"^dvdisaster: No memory leaks found\.\s*$", re.MULTILINE) +_RE_WIN_PATH = re.compile(r"[A-Z]:/[A-Za-z0-9_/-]+/") +_RE_GH_ACTIONS_TMP = re.compile(r"[-A-Za-z0-9_~]+/AppData/Local/Temp/") + + +def clean_output(text, tmp_dirs=None, strip_header=False, ignore_lines=None): + # type: (str, Optional[List[str]], bool, Optional[List[str]]) -> str + """Clean dvdisaster output to match golden-file comparison. + + Mirrors the filtering done by ``run_regtest`` in ``regtest/common.bash``. + + Args: + ignore_lines: regex patterns; lines matching any pattern are removed + (mirrors bash ``IGNORE_LOG_LINE``). + """ + # Normalize CRLF to LF — the mingw build writes CRLF line endings to + # stdout, but golden files use LF. + text = text.replace("\r\n", "\n") + + if strip_header: + # Remove first 3 lines (version/copyright header) — matches ``tail -n +4`` + lines = text.split("\n", 3) + if len(lines) > 3: + text = lines[3] + else: + text = "" + + # Remove memory-leak-OK lines entirely (grep -v equivalent) + lines = text.split("\n") + lines = [l for l in lines if not _RE_MEMLEAK.match(l)] + text = "\n".join(lines) + + # Remove Windows drive-letter paths: ``sed -re "s=[A-Z]:/[A-Za-z0-9_/-]+/==g"`` + text = _RE_WIN_PATH.sub("", text) + + # Remove per-test temp dirs (with trailing slashes) + if tmp_dirs: + for d in tmp_dirs: + d = d.rstrip("/").rstrip("\\") + text = text.replace(d + "/", "") + text = text.replace(d + "\\", "") + + # Remove ISODIR and TMPDIR paths (``sed "s=$TMPDIR/*==g;s=$ISODIR/*==g"``) + # The bash ``/*`` means zero or more slashes, so match with or without trailing / + for d in [_ISODIR, _TMPDIR]: + d = d.rstrip("/") + text = text.replace(d + "/", "") + text = text.replace(d, "") + + # Remove GitHub Actions temp paths + text = _RE_GH_ACTIONS_TMP.sub("", text) + + # Remove 'regtest/' prefix + text = text.replace("regtest/", "") + + # Remove lines matching ignore patterns (mirrors bash IGNORE_LOG_LINE) + if ignore_lines: + import re as _re + compiled = [_re.compile(p) for p in ignore_lines] + lines = text.split("\n") + lines = [l for l in lines if not any(r.search(l) for r in compiled)] + text = "\n".join(lines) + + return text + + +# --------------------------------------------------------------------------- +# 4. GoldenTest, SimCD, CreateECC dataclasses +# --------------------------------------------------------------------------- + + +@dataclass +class SimCD: + """Simulate reading from a CD image.""" + source: str = "master" + damage: Optional[List] = None + + +@dataclass +class CreateECC: + """Create ECC data.""" + method: Optional[str] = None + redundancy: Optional[str] = None + output: Optional[str] = None + ecc_size: Optional[int] = None + + +@dataclass +class GoldenTest: + """A single golden-file test case.""" + name: str + action: str + damage: Optional[List] = None + use_master: bool = False + image: Optional[str] = None + ecc: Optional[str] = None + sim_cd: Optional[SimCD] = None + create_ecc: Optional[CreateECC] = None + extra_args: Optional[List[str]] = None + ecc_damage: Optional[List] = None + chmod_image: Optional[int] = None + chmod_ecc: Optional[int] = None + new_image: bool = False + + +# --------------------------------------------------------------------------- +# 5. GoldenTestSuite Base Class +# --------------------------------------------------------------------------- + + +def _md5_file(path): + # type: (str) -> str + """Compute MD5 hex digest of a file.""" + h = hashlib.md5() + with open(path, "rb") as f: + while True: + chunk = f.read(65536) + if not chunk: + break + h.update(chunk) + return h.hexdigest() + + +def _find_binary(): + # type: () -> str + """Find the dvdisaster binary.""" + for candidate in [_DVDISASTER, _DVDISASTER + ".exe"]: + if os.path.isfile(candidate) and os.access(candidate, os.X_OK): + return candidate + raise RuntimeError( + "dvdisaster binary not found at {}. " + "Build it first: ./configure --with-gui=no && make".format(_DVDISASTER) + ) + + +def _run_dvdisaster(*args, **kwargs): + # type: (*str, **bool) -> Tuple[int, str] + """Run dvdisaster and return (returncode, combined_output_text). + + Unlike conftest.run_dvdisaster, this does NOT add --debug by default. + """ + binary = _find_binary() + check = kwargs.get("check", False) + cmd = [binary] + list(args) + result = subprocess.run( + cmd, + stdin=subprocess.DEVNULL, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + timeout=300, + ) + text = result.stdout.decode("utf-8", errors="replace") + if check and result.returncode != 0: + raise subprocess.CalledProcessError( + result.returncode, cmd, output=result.stdout + ) + return result.returncode, text + + +def _apply_damage(image_path, damage_ops): + # type: (str, List) -> None + """Apply damage operations to an image file.""" + for op in damage_ops: + if isinstance(op, AppendFile): + with open(op.path, "rb") as src, open(image_path, "ab") as dst: + dst.write(src.read()) + elif isinstance(op, (PadBytes, PadSectors)): + with open(image_path, "ab") as f: + f.write(b"\x00" * op.pad_size) + elif isinstance(op, (Erase, Byteset, Truncate)): + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(image_path), + *op.cli_args(), + check=True + ) + else: + raise TypeError("Unknown damage op: {}".format(type(op))) + + +class GoldenTestSuite: + """Base class for golden-file test suites. + + Subclasses declare class-level attributes and a ``tests`` list. + The ``test_golden`` method is parametrized automatically via + ``pytest_generate_tests``. + """ + + codec = "" # type: str + codec_prefix = "" # type: str + master = "" # type: str + master_ecc = None # type: Optional[str] + image_size = 21000 # type: int + redundancy = None # type: Optional[str] + tests = [] # type: List[GoldenTest] + + + def __init_subclass__(cls, **kwargs): + super().__init_subclass__(**kwargs) + # Store the tests list so pytest_generate_tests can find it + if "tests" in cls.__dict__: + cls._golden_tests = list(cls.__dict__["tests"]) + else: + cls._golden_tests = [] + + def _ensure_master(self): + # type: () -> str + """Create master image in ISODIR if it doesn't exist. Returns path.""" + os.makedirs(_ISODIR, exist_ok=True) + path = os.path.join(_ISODIR, self.master) + # Lock per-master so parallel pytest workers (pytest-xdist) don't both + # invoke `--random-image` against the same path. `--random-image` is + # non-deterministic; concurrent writers would produce divergent content + # and break golden-file comparisons. + with FileLock(path + ".lock"): + if not os.path.isfile(path): + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(path), + "--random-image", str(self.image_size), + check=True, + ) + return path + + def _ensure_master_ecc(self): + # type: () -> Optional[str] + """Create master ECC file in ISODIR if it doesn't exist. Returns path.""" + if self.master_ecc is None: + return None + os.makedirs(_ISODIR, exist_ok=True) + master_iso = self._ensure_master() + path = os.path.join(_ISODIR, self.master_ecc) + with FileLock(path + ".lock"): + if not os.path.isfile(path): + args = [ + "--regtest", "--debug", "--set-version", "0.80", + "-i{}".format(master_iso), + "-e{}".format(path), + "-c", + ] + if self.redundancy: + args.extend(["-n", self.redundancy]) + _run_dvdisaster(*args, check=True) + return path + + def _resolve_image(self, test, work_dir): + # type: (GoldenTest, str) -> Tuple[str, bool] + """Resolve image path for a test. + + Returns (path, is_temp) where is_temp indicates the file is a + temporary copy that can be modified/deleted. + """ + if test.use_master: + return self._ensure_master(), False + if test.image is not None: + return os.path.join(_ISODIR, test.image), False + if test.new_image: + # For reading tests: provide path but don't create the file + tmp_name = self.master.replace("master", "tmp") + dest = os.path.join(work_dir, tmp_name) + return dest, True + # Default: copy master to work_dir + master = self._ensure_master() + tmp_name = self.master.replace("master", "tmp") + dest = os.path.join(work_dir, tmp_name) + shutil.copy2(master, dest) + return dest, True + + def _resolve_ecc(self, test): + # type: (GoldenTest) -> Optional[str] + """Resolve ECC file path for a test.""" + if test.ecc is None: + return None + if test.ecc == "master_ecc": + return self._ensure_master_ecc() + return os.path.join(_ISODIR, test.ecc) + + def _run_golden_test(self, test, tmp_path): + # type: (GoldenTest, str) -> None + """Execute a golden-file test and assert results.""" + import pytest + + work_dir = str(tmp_path) + + # 1. Resolve golden file + golden_base = os.path.join( + _DATABASE, + "{}_{}".format(self.codec_prefix, test.name), + ) + golden_path = resolve_golden_path(golden_base) + if not os.path.isfile(golden_path): + pytest.skip("Golden file not found: {}".format(golden_path)) + + image_md5, ecc_md5, expected_output = parse_golden_file(golden_path) + + # 2. Resolve image and ecc + image_path, image_is_temp = self._resolve_image(test, work_dir) + ecc_path = self._resolve_ecc(test) + + chmod_files = [] + + try: + # 3. Apply damage to image (only if temp copy) + if test.damage and image_is_temp: + _apply_damage(image_path, test.damage) + + # 4. Apply ecc_damage: copy ecc first, then damage + ecc_work_path = ecc_path + if test.ecc_damage and ecc_path: + # Use "tmp" name to match bash regtest convention ($TMPECC) + ecc_basename = os.path.basename(ecc_path).replace("master", "tmp") + ecc_tmp = os.path.join(work_dir, ecc_basename) + shutil.copy2(ecc_path, ecc_tmp) + ecc_work_path = ecc_tmp + _apply_damage(ecc_work_path, test.ecc_damage) + + # 5. Apply chmod + if test.chmod_image is not None and image_is_temp: + os.chmod(image_path, test.chmod_image) + chmod_files.append(image_path) + if test.chmod_ecc is not None and ecc_work_path: + os.chmod(ecc_work_path, test.chmod_ecc) + chmod_files.append(ecc_work_path) + + # 6. Build command args + cmd_args = ["--regtest", "--no-progress"] + cmd_args.append("-i{}".format(image_path)) + if ecc_work_path: + cmd_args.append("-e{}".format(ecc_work_path)) + + # 7. Extra args (added early so --debug is set before + # --fixed-speed-values which requires debug mode) + if test.extra_args: + cmd_args.extend(test.extra_args) + + # 8. Handle sim_cd + if test.sim_cd is not None: + if test.sim_cd.source == "master": + sim_src = self._ensure_master() + else: + sim_src = os.path.join(_ISODIR, test.sim_cd.source) + sim_path = os.path.join(work_dir, "sim.iso") + shutil.copy2(sim_src, sim_path) + if test.sim_cd.damage: + _apply_damage(sim_path, test.sim_cd.damage) + cmd_args.extend([ + "--debug", + "--sim-cd={}".format(sim_path), + "--fixed-speed-values", + "--spinup-delay=0", + ]) + + # 9. Handle create_ecc + if test.create_ecc is not None: + cmd_args.extend(["--debug", "--set-version", "0.80"]) + if test.create_ecc.method: + cmd_args.extend(["-m{}".format(test.create_ecc.method)]) + if test.create_ecc.redundancy: + cmd_args.extend(["-n", test.create_ecc.redundancy]) + if test.create_ecc.output: + cmd_args.extend(["-o", test.create_ecc.output]) + if test.create_ecc.ecc_size is not None: + cmd_args.extend(["-n", str(test.create_ecc.ecc_size)]) + + # 10. Add action + cmd_args.extend(test.action.split()) + + # 11. Redundancy (for create actions like -c) + if self.redundancy and "-c" in test.action and test.create_ecc is None: + cmd_args.extend(["-n", self.redundancy]) + + # 12. Run + returncode, raw_output = _run_dvdisaster(*cmd_args) + + # 13. Clean output + tmp_dirs = [work_dir, _TMPDIR, _ISODIR] + cleaned = clean_output( + raw_output, + tmp_dirs=tmp_dirs, + strip_header=True, + ) + + # 14. Compare output + if cleaned != expected_output: + # Show diff for debugging + import difflib + diff = difflib.unified_diff( + expected_output.splitlines(keepends=True), + cleaned.splitlines(keepends=True), + fromfile="expected (golden)", + tofile="actual (cleaned)", + ) + diff_text = "".join(diff) + assert cleaned == expected_output, ( + "Output mismatch for test '{}':\n{}".format(test.name, diff_text) + ) + + # 15. Check MD5 sums + if image_md5 is not None and os.path.isfile(image_path): + actual_md5 = _md5_file(image_path) + assert actual_md5 == image_md5, ( + "Image MD5 mismatch for '{}': expected {}, got {}".format( + test.name, image_md5, actual_md5 + ) + ) + + if ecc_md5 is not None and ecc_work_path and os.path.isfile(ecc_work_path): + actual_md5 = _md5_file(ecc_work_path) + assert actual_md5 == ecc_md5, ( + "ECC MD5 mismatch for '{}': expected {}, got {}".format( + test.name, ecc_md5, actual_md5 + ) + ) + + finally: + # 16. Restore chmod'd files so cleanup can delete them + for f in chmod_files: + try: + os.chmod(f, 0o644) + except OSError: + pass + + def test_golden(self, golden_test, tmp_path): + """Parametrized test method — called once per GoldenTest.""" + self._run_golden_test(golden_test, tmp_path) + + +def pytest_generate_tests(metafunc): + """Parametrize ``test_golden`` from the suite's ``_golden_tests`` list.""" + if "golden_test" in metafunc.fixturenames: + cls = metafunc.cls + if cls is not None and hasattr(cls, "_golden_tests"): + tests = cls._golden_tests + metafunc.parametrize( + "golden_test", + tests, + ids=[t.name for t in tests], + ) + + +def filter_empty_golden_placeholders(items): + """Drop the placeholder pytest emits for ``test_golden`` when a suite's + ``_golden_tests`` list is empty. Several test classes (e.g. creation and + strip suites) inherit ``test_golden`` for a uniform base class API but + implement their checks as standalone methods — they have no golden-table + entries. Without this filter, each such class contributes one fake + ``test_golden[...]`` skip that inflates the skip count without + corresponding to any real test body. + + Pytest signals "empty parametrize" by setting the param value to its + internal ``NotSetType`` sentinel; detect that by class name so we don't + import a private API. + + Helper — callers invoke this from their ``pytest_collection_modifyitems`` + hook. Not itself a pytest hook, to avoid collisions with other hooks + (e.g. the ``--run-slow`` gate in tests/conftest.py). + """ + def _is_empty_golden_placeholder(item): + if getattr(item, "originalname", None) != "test_golden": + return False + callspec = getattr(item, "callspec", None) + if callspec is None: + return False + val = callspec.params.get("golden_test") + return val is not None and type(val).__name__ == "NotSetType" + + items[:] = [item for item in items if not _is_empty_golden_placeholder(item)] diff --git a/tests/test_framework.py b/tests/test_framework.py new file mode 100644 index 00000000..4907c070 --- /dev/null +++ b/tests/test_framework.py @@ -0,0 +1,268 @@ +""" +Unit tests for the golden-test framework itself. +""" + +import os +import tempfile + +import pytest + +from framework import ( + Byteset, + CreateECC, + Erase, + GoldenTest, + PadBytes, + PadSectors, + SimCD, + Truncate, + clean_output, + parse_golden_file, + resolve_golden_path, +) + + +# --------------------------------------------------------------------------- +# Damage operation CLI arg generation +# --------------------------------------------------------------------------- + + +class TestDamageOps: + def test_erase_simple(self): + op = Erase("1000-1049") + assert op.cli_args() == ["--erase", "1000-1049"] + + def test_erase_single_sector(self): + op = Erase("42") + assert op.cli_args() == ["--erase", "42"] + + def test_erase_with_fill_unreadable(self): + op = Erase("500", fill_unreadable=0) + assert op.cli_args() == ["--erase", "500", "--fill-unreadable=0"] + + def test_byteset(self): + op = Byteset(13444, 0, 154) + assert op.cli_args() == ["--byteset", "13444,0,154"] + + def test_byteset_large_values(self): + op = Byteset(20999, 255, 255) + assert op.cli_args() == ["--byteset", "20999,255,255"] + + def test_truncate(self): + op = Truncate(20000) + assert op.cli_args() == ["--truncate=20000"] + + def test_pad_bytes(self): + op = PadBytes(56) + assert op.pad_size == 56 + + def test_pad_sectors(self): + op = PadSectors(5000) + assert op.pad_size == 5000 * 2048 + + def test_pad_sectors_zero(self): + op = PadSectors(0) + assert op.pad_size == 0 + + +# --------------------------------------------------------------------------- +# Golden file parsing +# --------------------------------------------------------------------------- + +_GOLDEN_WITH_MD5 = """\ +9503f278d4550a9507a317664481adf8 +4be4dcc0f6b88965334ccf1050dfa5fa +This software comes with ABSOLUTELY NO WARRANTY. This +is free software and you are welcome to redistribute it +under the conditions of the GNU GENERAL PUBLIC LICENSE. +See the file "COPYING" for further information. + +rs01-master.iso: present, contains 21000 medium sectors. +- good image : all sectors present +""" + +_GOLDEN_IGNORE = """\ +ignore +ignore +This software comes with ABSOLUTELY NO WARRANTY. This +is free software and you are welcome to redistribute it +under the conditions of the GNU GENERAL PUBLIC LICENSE. +See the file "COPYING" for further information. + +Opening none.iso: No such file or directory. +""" + + +class TestGoldenFileParsing: + def test_parse_with_checksums(self, tmp_path): + p = str(tmp_path / "golden") + with open(p, "w") as f: + f.write(_GOLDEN_WITH_MD5) + img_md5, ecc_md5, output = parse_golden_file(p) + assert img_md5 == "9503f278d4550a9507a317664481adf8" + assert ecc_md5 == "4be4dcc0f6b88965334ccf1050dfa5fa" + assert output.startswith("This software comes with") + assert "rs01-master.iso" in output + + def test_parse_with_ignore(self, tmp_path): + p = str(tmp_path / "golden") + with open(p, "w") as f: + f.write(_GOLDEN_IGNORE) + img_md5, ecc_md5, output = parse_golden_file(p) + assert img_md5 is None + assert ecc_md5 is None + assert "Opening none.iso" in output + + def test_parse_expected_output_starts_at_line3(self, tmp_path): + p = str(tmp_path / "golden") + with open(p, "w") as f: + f.write("md5img\nmd5ecc\nline3\nline4\n") + _, _, output = parse_golden_file(p) + assert output == "line3\nline4\n" + # Must NOT contain md5 lines + assert "md5img" not in output + + def test_resolve_golden_path_base(self, tmp_path): + base = str(tmp_path / "RS01_test") + with open(base, "w") as f: + f.write("test") + result = resolve_golden_path(base) + assert result == base + + def test_resolve_golden_path_nonexistent_variant(self, tmp_path): + """When platform variant doesn't exist, fall back to base.""" + base = str(tmp_path / "RS01_test") + with open(base, "w") as f: + f.write("test") + result = resolve_golden_path(base) + assert result == base + + +# --------------------------------------------------------------------------- +# Output cleaning +# --------------------------------------------------------------------------- + + +class TestCleanOutput: + def test_strip_header(self): + text = "line1\nline2\nline3\nactual output\nmore output\n" + result = clean_output(text, strip_header=True) + assert result == "actual output\nmore output\n" + + def test_strip_header_short(self): + text = "line1\nline2\n" + result = clean_output(text, strip_header=True) + assert result == "" + + def test_remove_memleak_line(self): + text = "some output\ndvdisaster: No memory leaks found.\nmore output\n" + result = clean_output(text) + assert "No memory leaks found" not in result + assert "some output" in result + assert "more output" in result + + def test_remove_windows_paths(self): + text = "Opening C:/Users/runner/AppData/Local/Temp/test.iso: ok\n" + result = clean_output(text) + assert "C:/" not in result + + def test_remove_github_actions_temp(self): + text = "Opening runner-abc/AppData/Local/Temp/test.iso\n" + result = clean_output(text) + assert "AppData" not in result + + def test_remove_tmp_dirs(self): + text = "file /dev/shm/test/rs01-tmp.iso is present\n" + result = clean_output(text, tmp_dirs=["/dev/shm/test"]) + assert "/dev/shm/test/" not in result + assert "rs01-tmp.iso" in result + + def test_remove_regtest_prefix(self): + text = "regtest/database/RS01_good\n" + result = clean_output(text) + assert result == "database/RS01_good\n" + + def test_remove_isodir(self): + text = "/var/tmp/regtest/rs01-master.iso: present\n" + result = clean_output(text) + assert result == "rs01-master.iso: present\n" + + def test_normalize_crlf(self): + # Windows mingw build writes CRLF; golden files use LF. + text = "line one\r\nline two\r\n" + result = clean_output(text) + assert result == "line one\nline two\n" + + def test_combined_cleaning(self): + """Test multiple cleaning operations together.""" + text = ( + "dvdisaster version\ncopyright\nmore header\n" + "dvdisaster: No memory leaks found.\n" + "/var/tmp/regtest/rs01-master.iso: present\n" + ) + result = clean_output(text, strip_header=True) + assert "No memory leaks found" not in result + assert result == "rs01-master.iso: present\n" + + +# --------------------------------------------------------------------------- +# GoldenTest construction +# --------------------------------------------------------------------------- + + +class TestGoldenTestConstruction: + def test_minimal(self): + t = GoldenTest(name="test1", action="-t") + assert t.name == "test1" + assert t.action == "-t" + assert t.damage is None + assert t.use_master is False + assert t.extra_args is None + + def test_with_damage(self): + t = GoldenTest( + name="test2", + action="-t", + damage=[Erase("100"), Byteset(200, 0, 255)], + ) + assert len(t.damage) == 2 + assert isinstance(t.damage[0], Erase) + assert isinstance(t.damage[1], Byteset) + + def test_with_sim_cd(self): + t = GoldenTest( + name="test3", + action="-s", + sim_cd=SimCD( + source="master", + damage=[Byteset(0, 100, 255)], + ), + ) + assert t.sim_cd.source == "master" + assert len(t.sim_cd.damage) == 1 + + def test_with_create_ecc(self): + t = GoldenTest( + name="test4", + action="-c", + create_ecc=CreateECC(method="RS01", redundancy="normal"), + ) + assert t.create_ecc.method == "RS01" + assert t.create_ecc.redundancy == "normal" + + def test_with_all_fields(self): + t = GoldenTest( + name="full", + action="-f", + damage=[Erase("1")], + use_master=False, + image="custom.iso", + ecc="custom.ecc", + extra_args=["--verbose"], + ecc_damage=[Byteset(0, 0, 0)], + chmod_image=0o000, + chmod_ecc=0o444, + ) + assert t.chmod_image == 0 + assert t.chmod_ecc == 0o444 + assert t.extra_args == ["--verbose"] diff --git a/tests/test_rs01.py b/tests/test_rs01.py new file mode 100644 index 00000000..56345e3c --- /dev/null +++ b/tests/test_rs01.py @@ -0,0 +1,2301 @@ +""" +RS01 regression tests -- all tests from regtest/rs01.bash. + +Tests are grouped into: + - TestRS01Verify: 28 verify tests + - TestRS01Create: 11 creation tests + - TestRS01Repair: 18 repair/fix tests + - TestRS01Scan: 22 scanning tests + - TestRS01ReadLinear: 38 linear reading tests (read_multipass_ecc_partial_success + is in test_multipass_read.py) + - TestRS01ReadAdaptive: 25 adaptive reading tests +""" + +import difflib +import os +import re +import shutil +import sys + +import pytest +from filelock import FileLock + +from framework import ( + Byteset, + CreateECC, + Erase, + GoldenTest, + GoldenTestSuite, + PadBytes, + PadSectors, + SimCD, + Truncate, + _ISODIR, + _TMPDIR, + _find_binary, + _md5_file, + _run_dvdisaster, + _apply_damage, + clean_output, + parse_golden_file, + resolve_golden_path, +) + +# Windows MSYS2/MinGW does not have /dev/sdz; the legacy bash tests use V: +# (drive letter) for a guaranteed-missing device. The golden files for +# no_device tests have .win variants that expect "V:". +NON_EXISTENT_DEVICE = "V:" if sys.platform == "win32" else "/dev/sdz" + +# POSIX chmod 0o000/0o400 is not enforced on NTFS, so the Windows dvdisaster +# build cannot trigger "permission denied" errors for locally-created files. +_SKIP_CHMOD_WIN = pytest.mark.skipif( + sys.platform == "win32", + reason="POSIX chmod semantics not honored on NTFS", +) + +_PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +_DATABASE = os.path.join(_PROJECT_ROOT, "regtest", "database") +_FIXED_RANDOM_SEQ = os.path.join(_PROJECT_ROOT, "regtest", "fixed-random-sequence") + +# Constants matching the bash variables +ISOSIZE = 21000 +SETVERSION = "0.80" +REDUNDANCY = "normal" + + +# --------------------------------------------------------------------------- +# Session fixture: create plus56 setup images (shared across all tests) +# --------------------------------------------------------------------------- + +@pytest.fixture(scope="session") +def plus56_images(): + """Create rs01-plus56_bytes.iso and .ecc in ISODIR if they don't exist. + + These mirror the bash preamble that creates ISO_PLUS56 and ECC_PLUS56. + Requires the master image and is idempotent. + """ + os.makedirs(_ISODIR, exist_ok=True) + master_iso = os.path.join(_ISODIR, "rs01-master.iso") + iso_plus56 = os.path.join(_ISODIR, "rs01-plus56_bytes.iso") + ecc_plus56 = os.path.join(_ISODIR, "rs01-plus56_bytes.ecc") + + # Each file is guarded by its own FileLock so parallel pytest-xdist workers + # don't race: worker A starts writing → worker B sees isfile=True on the + # partial file → B skips creation → B's tests fail with "No error + # correction file present". + with FileLock(master_iso + ".lock"): + if not os.path.isfile(master_iso): + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(master_iso), + "--random-image", "21000", + check=True, + ) + + with FileLock(iso_plus56 + ".lock"): + if not os.path.isfile(iso_plus56): + shutil.copy2(master_iso, iso_plus56) + with open(iso_plus56, "ab") as f: + f.write(b"\x00" * 56) + + master_ecc = os.path.join(_ISODIR, "rs01-master.ecc") + with FileLock(master_ecc + ".lock"): + if not os.path.isfile(master_ecc): + _run_dvdisaster( + "--regtest", "--debug", "--set-version", "0.80", + "-i{}".format(master_iso), + "-e{}".format(master_ecc), + "-c", "-n", "normal", + check=True, + ) + + with FileLock(ecc_plus56 + ".lock"): + if not os.path.isfile(ecc_plus56): + _run_dvdisaster( + "--regtest", "--debug", "--set-version", "0.80", + "-i{}".format(iso_plus56), + "-e{}".format(ecc_plus56), + "-c", "-n", "normal", + check=True, + ) + + return iso_plus56, ecc_plus56 + + +# --------------------------------------------------------------------------- +# Common damage patterns (reused by multiple tests) +# --------------------------------------------------------------------------- + +_DAMAGE_DEFECTIVE = [ + Erase("1000-1049"), + Erase("11230"), + Erase("12450-12457"), + Byteset(13444, 0, 154), +] + +_DAMAGE_MISSING_SECTORS = [ + Erase("1000-1049"), + Erase("11230"), + Erase("12450-12457"), +] + +_DAMAGE_DSM1 = [ + Erase("3030"), + Byteset(3030, 353, 49), + Erase("4400"), + Byteset(4400, 353, 53), + Erase("4411"), + Byteset(4411, 353, 53), +] + +_DAMAGE_DSM2 = [ + Erase("3030"), + Byteset(3030, 416, 55), + Byteset(3030, 556, 32), + Byteset(3030, 557, 50), + Erase("4400"), + Byteset(4400, 416, 53), + Byteset(4400, 556, 32), + Byteset(4400, 557, 50), + Erase("4411"), + Byteset(4411, 416, 53), + Byteset(4411, 556, 32), + Byteset(4411, 557, 50), +] + + +# --------------------------------------------------------------------------- +# Helper: run a golden-file test with prepared image/ecc paths +# --------------------------------------------------------------------------- + +def _run_golden_compare(test_name, cmd_args, tmp_path, + image_path=None, ecc_path=None, + ignore_line_re=None): + """Run dvdisaster, clean output, compare against golden file. + + Args: + test_name: name matching the golden file (e.g. 'ecc_create') + cmd_args: list of CLI arguments + tmp_path: pytest tmp_path for cleaning + image_path: path to image file for MD5 check (or None) + ecc_path: path to ecc file for MD5 check (or None) + ignore_line_re: regex pattern for lines to strip from output + """ + golden_base = os.path.join(_DATABASE, "RS01_{}".format(test_name)) + golden_path = resolve_golden_path(golden_base) + if not os.path.isfile(golden_path): + pytest.skip("Golden file not found: {}".format(golden_path)) + + expected_image_md5, expected_ecc_md5, expected_output = parse_golden_file(golden_path) + + _, raw_output = _run_dvdisaster(*cmd_args) + + work_dir = str(tmp_path) + cleaned = clean_output( + raw_output, + tmp_dirs=[work_dir, _TMPDIR, _ISODIR], + strip_header=True, + ) + + # Filter ignored lines + if ignore_line_re: + lines = cleaned.split("\n") + lines = [l for l in lines if not re.match(ignore_line_re, l)] + cleaned = "\n".join(lines) + + if cleaned != expected_output: + diff = difflib.unified_diff( + expected_output.splitlines(keepends=True), + cleaned.splitlines(keepends=True), + fromfile="expected (golden)", + tofile="actual (cleaned)", + ) + diff_text = "".join(diff) + assert cleaned == expected_output, ( + "Output mismatch for test '{}':\n{}".format(test_name, diff_text) + ) + + if expected_image_md5 is not None and image_path and os.path.isfile(image_path): + actual_md5 = _md5_file(image_path) + assert actual_md5 == expected_image_md5, ( + "Image MD5 mismatch for '{}': expected {}, got {}".format( + test_name, expected_image_md5, actual_md5) + ) + + if expected_ecc_md5 is not None and ecc_path and os.path.isfile(ecc_path): + actual_md5 = _md5_file(ecc_path) + assert actual_md5 == expected_ecc_md5, ( + "ECC MD5 mismatch for '{}': expected {}, got {}".format( + test_name, expected_ecc_md5, actual_md5) + ) + + +def _ensure_master(): + """Ensure the RS01 master image exists and return its path.""" + os.makedirs(_ISODIR, exist_ok=True) + path = os.path.join(_ISODIR, "rs01-master.iso") + with FileLock(path + ".lock"): + if not os.path.isfile(path): + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(path), + "--random-image", str(ISOSIZE), + check=True, + ) + return path + + +def _ensure_master_ecc(): + """Ensure the RS01 master ECC exists and return its path.""" + master_iso = _ensure_master() + path = os.path.join(_ISODIR, "rs01-master.ecc") + with FileLock(path + ".lock"): + if not os.path.isfile(path): + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_iso), + "-e{}".format(path), + "-c", "-n", REDUNDANCY, + check=True, + ) + return path + + +def _append_fixed_random_sequence(path, times=1): + """Append the fixed-random-sequence file content to path, `times` times.""" + with open(_FIXED_RANDOM_SEQ, "rb") as f: + seq_data = f.read() + with open(path, "ab") as f: + for _ in range(times): + f.write(seq_data) + + +# --------------------------------------------------------------------------- +# Test Suite: Verify +# --------------------------------------------------------------------------- + +class TestRS01Verify(GoldenTestSuite): + codec = "RS01" + codec_prefix = "RS01" + master = "rs01-master.iso" + master_ecc = "rs01-master.ecc" + image_size = 21000 + redundancy = "normal" + + # ------------------------------------------------------------------ + # Declarative tests (auto-parametrized via test_golden) + # ------------------------------------------------------------------ + tests = [ + # 1. good + GoldenTest("good", action="-t", use_master=True, ecc="master_ecc"), + # 2. good_quick + GoldenTest("good_quick", action="-tq", use_master=True, ecc="master_ecc"), + # 3. no_files + GoldenTest("no_files", action="-t", image="no.iso", ecc="no.ecc"), + # 4. no_image + GoldenTest("no_image", action="-t", image="no.iso", ecc="master_ecc"), + # 5. no_ecc + GoldenTest("no_ecc", action="-t", use_master=True, ecc="no.ecc"), + # 6. defective_image_no_ecc + GoldenTest("defective_image_no_ecc", action="-t", + damage=_DAMAGE_DEFECTIVE, ecc="no.ecc"), + # 15. truncated (by 5 sectors) + GoldenTest("truncated", action="-t", + damage=[Truncate(20995)], ecc="master_ecc"), + # 16. plus1 (1 extra sector) + GoldenTest("plus1", action="-t", + damage=[PadSectors(1)], ecc="master_ecc"), + # 17. plus17 (17 extra sectors) + GoldenTest("plus17", action="-t", + damage=[PadSectors(17)], ecc="master_ecc"), + # 18. defective_with_ecc + GoldenTest("defective_with_ecc", action="-t", + damage=_DAMAGE_DEFECTIVE, ecc="master_ecc"), + # 19. missing_sectors_with_ecc + GoldenTest("missing_sectors_with_ecc", action="-t", + damage=_DAMAGE_MISSING_SECTORS, ecc="master_ecc"), + # 20. crc_errors_with_ecc + GoldenTest("crc_errors_with_ecc", action="-t", + damage=[Byteset(13444, 0, 154)], ecc="master_ecc"), + # 21. crc_in_fingerprint + GoldenTest("crc_in_fingerprint", action="-t", + damage=[Byteset(16, 201, 55)], ecc="master_ecc"), + # 22. missing_fingerprint + GoldenTest("missing_fingerprint", action="-t", + damage=[Erase("16")], ecc="master_ecc"), + # 23. missing_ecc_header + GoldenTest("missing_ecc_header", action="-t", + use_master=True, ecc="master_ecc", + ecc_damage=[Erase("0")]), + # 24. ecc_header_crc_error + GoldenTest("ecc_header_crc_error", action="-t", + use_master=True, ecc="master_ecc", + ecc_damage=[Byteset(0, 22, 107)]), + # 25. uncorrectable_dsm_in_image + GoldenTest("uncorrectable_dsm_in_image", action="-t", + damage=_DAMAGE_DSM1, ecc="master_ecc"), + # 26. uncorrectable_dsm_in_image_verbose + GoldenTest("uncorrectable_dsm_in_image_verbose", action="-t -v", + damage=_DAMAGE_DSM1, ecc="master_ecc"), + # 27. uncorrectable_dsm_in_image2 + GoldenTest("uncorrectable_dsm_in_image2", action="-t", + damage=_DAMAGE_DSM2, ecc="master_ecc"), + # 28. uncorrectable_dsm_in_image2_verbose + GoldenTest("uncorrectable_dsm_in_image2_verbose", action="-t -v", + damage=_DAMAGE_DSM2, ecc="master_ecc"), + ] + + # ------------------------------------------------------------------ + # Plus56 fixture-dependent tests (#7-#13) + # ------------------------------------------------------------------ + + def test_plus56_bytes(self, plus56_images, tmp_path): + """#7: verify plus56 image with its own ecc.""" + iso_plus56, ecc_plus56 = plus56_images + test = GoldenTest( + "plus56_bytes", action="-t", + image=os.path.basename(iso_plus56), + ecc=os.path.basename(ecc_plus56), + ) + self._run_golden_test(test, tmp_path) + + def test_image_plus56_bytes(self, plus56_images, tmp_path): + """#8: verify plus56 image with no ecc.""" + iso_plus56, _ = plus56_images + test = GoldenTest( + "image_plus56_bytes", action="-t", + image=os.path.basename(iso_plus56), + ecc="no.ecc", + ) + self._run_golden_test(test, tmp_path) + + def test_ecc_plus56_bytes(self, plus56_images, tmp_path): + """#9: verify no image with plus56 ecc.""" + _, ecc_plus56 = plus56_images + test = GoldenTest( + "ecc_plus56_bytes", action="-t", + image="no.iso", + ecc=os.path.basename(ecc_plus56), + ) + self._run_golden_test(test, tmp_path) + + def test_normal_image_ecc_plus56b(self, plus56_images, tmp_path): + """#10: verify normal master image with plus56 ecc.""" + _, ecc_plus56 = plus56_images + test = GoldenTest( + "normal_image_ecc_plus56b", action="-t", + use_master=True, + ecc=os.path.basename(ecc_plus56), + ) + self._run_golden_test(test, tmp_path) + + def test_image_plus56b_normal_ecc(self, plus56_images, tmp_path): + """#11: verify plus56 image with normal master ecc.""" + iso_plus56, _ = plus56_images + test = GoldenTest( + "image_plus56b_normal_ecc", action="-t", + image=os.path.basename(iso_plus56), + ecc="master_ecc", + ) + self._run_golden_test(test, tmp_path) + + def test_image_few_bytes_shorter(self, plus56_images, tmp_path): + """#12: master + 55 bytes (1 byte shorter than plus56 ecc expects).""" + _, ecc_plus56 = plus56_images + test = GoldenTest( + "image_few_bytes_shorter", action="-t", + damage=[PadBytes(55)], + ecc=os.path.basename(ecc_plus56), + ) + self._run_golden_test(test, tmp_path) + + def test_image_few_bytes_longer(self, plus56_images, tmp_path): + """#13: master + 57 bytes (1 byte longer than plus56 ecc expects).""" + _, ecc_plus56 = plus56_images + test = GoldenTest( + "image_few_bytes_longer", action="-t", + damage=[PadBytes(57)], + ecc=os.path.basename(ecc_plus56), + ) + self._run_golden_test(test, tmp_path) + + # ------------------------------------------------------------------ + # Truncated by bytes test (#14) -- needs dd-like truncation + # ------------------------------------------------------------------ + + def test_truncated_by_bytes(self, tmp_path): + """#14: master truncated to (2048*21000 - 7) bytes.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + truncated_size = 2048 * 21000 - 7 + + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + with open(master, "rb") as src, open(tmp_iso, "wb") as dst: + dst.write(src.read(truncated_size)) + + test = GoldenTest( + "truncated_by_bytes", action="-t", + ecc="master_ecc", + ) + # Manually set up and run since we prepared the image ourselves + self._run_golden_test_with_prepared_image(test, tmp_iso, tmp_path) + + def _run_golden_test_with_prepared_image(self, test, image_path, tmp_path): + """Run a golden test with an already-prepared image file.""" + golden_base = os.path.join( + os.path.dirname(os.path.dirname(os.path.abspath(__file__))), + "regtest", "database", + "{}_{}".format(self.codec_prefix, test.name), + ) + golden_path = resolve_golden_path(golden_base) + if not os.path.isfile(golden_path): + pytest.skip("Golden file not found: {}".format(golden_path)) + + image_md5, ecc_md5, expected_output = parse_golden_file(golden_path) + ecc_path = self._resolve_ecc(test) + + cmd_args = ["--regtest", "--no-progress"] + cmd_args.append("-i{}".format(image_path)) + if ecc_path: + cmd_args.append("-e{}".format(ecc_path)) + cmd_args.extend(test.action.split()) + + _, raw_output = _run_dvdisaster(*cmd_args) + + work_dir = str(tmp_path) + cleaned = clean_output( + raw_output, + tmp_dirs=[work_dir, _TMPDIR, _ISODIR], + strip_header=True, + ) + + if cleaned != expected_output: + diff = difflib.unified_diff( + expected_output.splitlines(keepends=True), + cleaned.splitlines(keepends=True), + fromfile="expected (golden)", + tofile="actual (cleaned)", + ) + diff_text = "".join(diff) + assert cleaned == expected_output, ( + "Output mismatch for test '{}':\n{}".format(test.name, diff_text) + ) + + if image_md5 is not None and os.path.isfile(image_path): + actual_md5 = _md5_file(image_path) + assert actual_md5 == image_md5, ( + "Image MD5 mismatch for '{}': expected {}, got {}".format( + test.name, image_md5, actual_md5 + ) + ) + + if ecc_md5 is not None and ecc_path and os.path.isfile(ecc_path): + actual_ecc_md5 = _md5_file(ecc_path) + assert actual_ecc_md5 == ecc_md5, ( + "ECC MD5 mismatch for '{}': expected {}, got {}".format( + test.name, ecc_md5, actual_ecc_md5 + ) + ) + + +# --------------------------------------------------------------------------- +# Test Suite: Create +# --------------------------------------------------------------------------- + +class TestRS01Create(GoldenTestSuite): + codec = "RS01" + codec_prefix = "RS01" + master = "rs01-master.iso" + master_ecc = "rs01-master.ecc" + image_size = 21000 + redundancy = "normal" + + tests = [] # All creation tests are plain methods + + def test_ecc_create(self, tmp_path): + """Create ecc file from master image.""" + master = _ensure_master() + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(ecc), + "--debug", "--set-version", SETVERSION, + "-c", "-n", REDUNDANCY, + ] + _run_golden_compare("ecc_create", cmd, tmp_path, + image_path=master, ecc_path=ecc) + + def test_ecc_missing_image(self, tmp_path): + """Create ecc with missing image.""" + no_file = os.path.join(_ISODIR, "none.iso") + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(no_file), "-e{}".format(ecc), + "-c", "-n", REDUNDANCY, + ] + _run_golden_compare("ecc_missing_image", cmd, tmp_path) + + @_SKIP_CHMOD_WIN + def test_ecc_no_read_perm(self, tmp_path): + """Create ecc with no read permission on image.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, tmp_iso) + os.chmod(tmp_iso, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc), + "-c", "-n", REDUNDANCY, + ] + _run_golden_compare("ecc_no_read_perm", cmd, tmp_path) + finally: + os.chmod(tmp_iso, 0o644) + + @_SKIP_CHMOD_WIN + def test_ecc_no_write_perm(self, tmp_path): + """Create ecc with no write permission on ecc file (should recreate).""" + master = _ensure_master() + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + # Create and make read-only + with open(ecc, "w"): + pass + os.chmod(ecc, 0o400) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(ecc), + "--debug", "--set-version", SETVERSION, + "-c", "-n", REDUNDANCY, + ] + _run_golden_compare("ecc_no_write_perm", cmd, tmp_path, + image_path=master, ecc_path=ecc) + finally: + try: + os.chmod(ecc, 0o644) + except OSError: + pass + + def test_ecc_create_plus56(self, plus56_images, tmp_path): + """Create ecc file from plus56 image.""" + iso_plus56, _ = plus56_images + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(iso_plus56), "-e{}".format(ecc), + "--debug", "--set-version", SETVERSION, + "-c", "-n", REDUNDANCY, + ] + _run_golden_compare("ecc_create_plus56", cmd, tmp_path, + image_path=iso_plus56, ecc_path=ecc) + + def test_ecc_missing_sectors(self, tmp_path): + """Create ecc from image with unreadable sectors.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Erase("1000-1049"), + Erase("11230"), + Erase("12450-12457"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc), + "-c", "-n", REDUNDANCY, + ] + _run_golden_compare("ecc_missing_sectors", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc) + + def test_ecc_create_after_read(self, tmp_path): + """Read image and create ecc in one call.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-c", "-n", REDUNDANCY, "--spinup-delay=0", "-v", + ] + _run_golden_compare("ecc_create_after_read", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc) + + def test_ecc_recreate_after_read_rs01(self, tmp_path): + """Read image with RS01 ecc and create new ecc.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + # Create initial RS01 ecc with 8r redundancy + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e{}".format(ecc), + "-c", "-n", "8r", check=True, + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-c", "-n", REDUNDANCY, "--spinup-delay=0", "-v", + ] + _run_golden_compare("ecc_recreate_after_read_rs01", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc) + + def test_ecc_recreate_after_read_rs02(self, tmp_path): + """Read image with RS02 ecc and create additional ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + # Augment with RS02 + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-c", "-mRS02", + "-n{}".format(ISOSIZE + 6000), check=True, + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-c", "-n", REDUNDANCY, "--spinup-delay=0", "-v", + ] + _run_golden_compare("ecc_recreate_after_read_rs02", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc) + + def test_ecc_recreate_after_read_rs03i(self, tmp_path): + """Read image with RS03i ecc and create additional ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + # Augment with RS03 (image mode) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-c", "-mRS03", + "-n{}".format(ISOSIZE + 6000), check=True, + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-c", "-n", REDUNDANCY, "--spinup-delay=0", "-v", + ] + _run_golden_compare("ecc_recreate_after_read_rs03i", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc) + + def test_ecc_recreate_after_read_rs03f(self, tmp_path): + """Read image with RS03f ecc and create new ecc.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + # Create RS03 file-mode ecc with 8r redundancy + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e{}".format(ecc), + "-c", "-n", "8r", "-mRS03", "-o", "file", check=True, + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-c", "-n", REDUNDANCY, "--spinup-delay=0", "-v", + ] + _run_golden_compare("ecc_recreate_after_read_rs03f", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc) + + def test_ecc_create_after_partial_read(self, tmp_path): + """Create ecc after completing partial image via read.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + # Erase sectors 1000-1500 in the tmp image + _apply_damage(tmp_iso, [Erase("1000-1500")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-c", "-n", REDUNDANCY, "--spinup-delay=0", "-v", + ] + _run_golden_compare("ecc_create_after_partial_read", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc) + + +# --------------------------------------------------------------------------- +# Test Suite: Repair +# --------------------------------------------------------------------------- + +class TestRS01Repair(GoldenTestSuite): + codec = "RS01" + codec_prefix = "RS01" + master = "rs01-master.iso" + master_ecc = "rs01-master.ecc" + image_size = 21000 + redundancy = "normal" + + # Simple repair tests using the declarative approach + tests = [ + # fix_good: fix good image (no damage) + GoldenTest("fix_good", action="-f", ecc="master_ecc"), + # fix_no_write_perm: fix image without write permission + GoldenTest("fix_no_write_perm", action="-f", + chmod_image=0o400, ecc="master_ecc"), + # fix_missing_sectors + GoldenTest("fix_missing_sectors", action="-f", + damage=[ + Erase("0"), Erase("190"), Erase("192"), + Erase("590-649"), Erase("2000-2139"), + Erase("2141-2176"), Erase("20999"), + ], ecc="master_ecc"), + # fix_crc_errors + GoldenTest("fix_crc_errors", action="-f", + damage=[ + Byteset(0, 1, 1), Byteset(190, 200, 143), + Byteset(1200, 100, 1), Byteset(1201, 100, 1), + Byteset(20999, 500, 91), + ], ecc="master_ecc"), + # fix_additional_sector: image with 1 extra sector (TAO case) + GoldenTest("fix_additional_sector", action="-f", + damage=[PadSectors(1)], ecc="master_ecc"), + # fix_plus17: image with 17 additional sectors + GoldenTest("fix_plus17", action="-f", + damage=[PadSectors(17)], ecc="master_ecc"), + # fix_plus17_truncate: with --truncate + GoldenTest("fix_plus17_truncate", action="-f --truncate", + damage=[PadSectors(17)], ecc="master_ecc"), + # fix_truncated: truncated image + GoldenTest("fix_truncated", action="-f", + damage=[Truncate(20731)], ecc="master_ecc"), + ] + + # ------------------------------------------------------------------ + # Permission tests requiring special handling + # ------------------------------------------------------------------ + + def test_fix_no_read_perm(self, tmp_path): + """Fix image without read permission.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, tmp_iso) + os.chmod(tmp_iso, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "-f", + ] + _run_golden_compare("fix_no_read_perm", cmd, tmp_path, + image_path=tmp_iso, ecc_path=master_ecc) + finally: + os.chmod(tmp_iso, 0o644) + + def test_fix_no_read_perm_ecc(self, tmp_path): + """Fix image without read permission on ecc.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, tmp_iso) + shutil.copy2(master_ecc, tmp_ecc) + os.chmod(tmp_ecc, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-f", + ] + _run_golden_compare("fix_no_read_perm_ecc", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + finally: + os.chmod(tmp_ecc, 0o644) + + # ------------------------------------------------------------------ + # Plus56 repair tests + # ------------------------------------------------------------------ + + def test_fix_plus56_bytes(self, plus56_images, tmp_path): + """Fix good image not multiple of 2048.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", + ] + _run_golden_compare("fix_plus56_bytes", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + _apply_damage(tmp_iso, [Byteset(21000, 28, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", + ] + _run_golden_compare("fix_plus56", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_plus17(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes + few bytes more.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + # Append extra bytes + with open(tmp_iso, "ab") as f: + f.write(b"0123456789abcdef\n") + _apply_damage(tmp_iso, [Byteset(21000, 55, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", "--truncate", + ] + _run_golden_compare("fix_plus56_plus17", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_plus1s(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes + one sector more.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"\x00" * 2048) + _apply_damage(tmp_iso, [Byteset(21000, 55, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", "--truncate", + ] + _run_golden_compare("fix_plus56_plus1s", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_plus2s(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes + two sectors more.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"\x00" * 4096) + _apply_damage(tmp_iso, [Byteset(21000, 55, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", "--truncate", + ] + _run_golden_compare("fix_plus56_plus2s", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_plus17500(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes + more sectors.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"\x00" * 17500) + _apply_damage(tmp_iso, [Byteset(21000, 55, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", "--truncate", + ] + _run_golden_compare("fix_plus56_plus17500", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_truncated(self, plus56_images, tmp_path): + """Fix truncated image not a multiple of 2048.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + _apply_damage(tmp_iso, [Truncate(20972)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", + ] + _run_golden_compare("fix_plus56_truncated", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_little_truncated(self, plus56_images, tmp_path): + """Fix image not a multiple of 2048 missing a few bytes.""" + master = _ensure_master() + _, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, tmp_iso) + # Append 50 zero bytes (less than 56) + with open(tmp_iso, "ab") as f: + f.write(b"\x00" * 50) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", + ] + _run_golden_compare("fix_plus56_little_truncated", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + +# --------------------------------------------------------------------------- +# Test Suite: Scan +# --------------------------------------------------------------------------- + +class TestRS01Scan(GoldenTestSuite): + codec = "RS01" + codec_prefix = "RS01" + master = "rs01-master.iso" + master_ecc = "rs01-master.ecc" + image_size = 21000 + redundancy = "normal" + + # Declarative scan tests + # Note: sim_cd adds --sim-cd, --fixed-speed-values, --spinup-delay=0 + # so the action should not repeat --spinup-delay=0 + tests = [ + # scan_no_ecc: scan image, no ecc data + GoldenTest("scan_no_ecc", action="-s", + image="no.iso", ecc="no.ecc", + sim_cd=SimCD(source="master"), + extra_args=["--debug"]), + # scan_defective_no_ecc: defective media, no ecc + GoldenTest("scan_defective_no_ecc", action="-s", + image="no.iso", ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("100-200"), Erase("766"), Erase("2410"), + ]), + extra_args=["--debug"]), + # scan_defective_no_ecc_again: 1 sector skip + GoldenTest("scan_defective_no_ecc_again", action="-j 1 -s", + image="no.iso", ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("100-200"), Erase("766"), Erase("2410"), + ]), + extra_args=["--debug"]), + # scan_defective_large_skip: large sector skip of 256 + GoldenTest("scan_defective_large_skip", action="-s -j 256", + image="no.iso", ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("1600-1615"), Erase("6400-10000"), + ]), + extra_args=["--debug"]), + # scan_new_with_range_no_ecc: partial range + GoldenTest("scan_new_with_range_no_ecc", action="-s10000-15000", + image="no.iso", ecc="no.ecc", + sim_cd=SimCD(source="master"), + extra_args=["--debug"]), + # scan_new_with_invalid_range_no_ecc: invalid range + GoldenTest("scan_new_with_invalid_range_no_ecc", + action="-s10000-55000", + image="no.iso", ecc="no.ecc", + sim_cd=SimCD(source="master"), + extra_args=["--debug"]), + # scan_with_ecc: scan with ecc data + GoldenTest("scan_with_ecc", action="-s", + image="no.iso", ecc="master_ecc", + sim_cd=SimCD(source="master"), + extra_args=["--debug"]), + # scan_with_non_existing_ecc + GoldenTest("scan_with_non_existing_ecc", action="-s", + image="no.iso", ecc="no_ecc", + sim_cd=SimCD(source="master"), + extra_args=["--debug"]), + # scan_crc_errors_with_ecc + GoldenTest("scan_crc_errors_with_ecc", action="-s", + image="no.iso", ecc="master_ecc", + sim_cd=SimCD(source="master", damage=[ + Byteset(0, 100, 255), Byteset(1, 180, 200), + Byteset(7910, 23, 98), Byteset(20999, 55, 123), + ]), + extra_args=["--debug"]), + # scan_no_tao_tail_with_ecc: --dao option + GoldenTest("scan_no_tao_tail_with_ecc", action="--dao -s", + image="no.iso", ecc="master_ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("20998-20999"), + ]), + extra_args=["--debug"]), + # scan_more_missing_at_end_with_ecc + GoldenTest("scan_more_missing_at_end_with_ecc", action="-s", + image="no.iso", ecc="master_ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("20954-20999"), + ]), + extra_args=["--debug"]), + # scan_with_hardware_failure + GoldenTest("scan_with_hardware_failure", action="-s", + image="no.iso", ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("5000:hardware failure"), + Erase("6000:hardware failure"), + ]), + extra_args=["--debug"]), + # scan_with_ignored_hardware_failure + GoldenTest("scan_with_ignored_hardware_failure", + action="-s --ignore-fatal-sense", + image="no.iso", ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("5000:hardware failure"), + ]), + extra_args=["--debug"]), + # scan_medium_with_dsm + GoldenTest("scan_medium_with_dsm", action="-s", + image="no.iso", ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("4999:pass as dead sector marker"), + Erase("5799:pass as dead sector marker"), + ]), + extra_args=["--debug"]), + ] + + # ------------------------------------------------------------------ + # Tests requiring special setup (plain methods) + # ------------------------------------------------------------------ + + def test_scan_no_device(self, tmp_path): + """Scan image from non-existent device.""" + master = _ensure_master() + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(os.path.join(_ISODIR, "no.iso")), + "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", "-d", NON_EXISTENT_DEVICE, + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_no_device", cmd, tmp_path) + + @_SKIP_CHMOD_WIN + def test_scan_no_device_access(self, tmp_path): + """Scan image from device with insufficient permissions.""" + master = _ensure_master() + fake_dev = os.path.join(str(tmp_path), "sdz") + with open(fake_dev, "w"): + pass + os.chmod(fake_dev, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(os.path.join(_ISODIR, "no.iso")), + "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-d", fake_dev, "-s", + ] + _run_golden_compare("scan_no_device_access", cmd, tmp_path) + finally: + os.chmod(fake_dev, 0o644) + + @_SKIP_CHMOD_WIN + def test_scan_with_no_permission_for_ecc(self, tmp_path): + """Scan with no permission to access ecc file.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master_ecc, tmp_ecc) + os.chmod(tmp_ecc, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(os.path.join(_ISODIR, "no.iso")), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_with_no_permission_for_ecc", cmd, tmp_path) + finally: + os.chmod(tmp_ecc, 0o644) + + def test_scan_shorter_with_ecc(self, tmp_path): + """Scan image shorter than expected with ecc.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Truncate(ISOSIZE - 44)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(os.path.join(_ISODIR, "no.iso")), + "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--ignore-iso-size", "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_shorter_with_ecc", cmd, tmp_path) + + def test_scan_longer_with_ecc(self, tmp_path): + """Scan image longer than expected with ecc.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 22) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(os.path.join(_ISODIR, "no.iso")), + "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--ignore-iso-size", "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_longer_with_ecc", cmd, tmp_path) + + def test_scan_tao_tail_with_ecc(self, tmp_path): + """Scan image, tao tail case, ecc data.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 1) + _apply_damage(sim_iso, [Erase("21000-21001")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(os.path.join(_ISODIR, "no.iso")), + "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--ignore-iso-size", "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_tao_tail_with_ecc", cmd, tmp_path) + + def test_scan_with_double_ecc(self, tmp_path): + """Scan image with RS02 data and a RS01 ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + # Augment with RS02 + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS02", + "-n{}".format(ISOSIZE + 5000), "-c", check=True, + ) + # Create RS01 ecc + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e", tmp_ecc, + "-c", "-n", REDUNDANCY, check=True, + ) + # Introduce CRC error in RS02 area + _apply_damage(sim_iso, [Byteset(25910, 100, 200)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(os.path.join(_ISODIR, "no.iso")), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_with_double_ecc", cmd, tmp_path) + + def test_scan_with_incompatible_ecc(self, tmp_path): + """Scan image with ecc file requiring a newer dvdisaster version.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + # Create ECC + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e", tmp_ecc, + "-c", "-n", REDUNDANCY, check=True, + ) + # Modify version bytes in ECC header + _apply_damage(tmp_ecc, [ + Byteset(0, 88, 220), + Byteset(0, 89, 65), + Byteset(0, 90, 15), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(os.path.join(_ISODIR, "no.iso")), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_with_incompatible_ecc", cmd, tmp_path, + ignore_line_re=r'^\* $') + + +# --------------------------------------------------------------------------- +# Test Suite: Linear Reading +# --------------------------------------------------------------------------- + +class TestRS01ReadLinear(GoldenTestSuite): + codec = "RS01" + codec_prefix = "RS01" + master = "rs01-master.iso" + master_ecc = "rs01-master.ecc" + image_size = 21000 + redundancy = "normal" + + # Declarative linear reading tests + # Note: sim_cd adds --sim-cd, --fixed-speed-values, --spinup-delay=0 + # new_image=True means: provide path but don't pre-create the file + tests = [ + # read_no_ecc: read image, no ecc data + GoldenTest("read_no_ecc", action="-r", new_image=True, + ecc="no.ecc", + sim_cd=SimCD(source="master"), + extra_args=["--debug"]), + # read_defective_no_ecc: defective media, no ecc + GoldenTest("read_defective_no_ecc", action="-r", new_image=True, + ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("100-200"), Erase("766"), Erase("2410"), + ]), + extra_args=["--debug"]), + # read_defective_large_skip + GoldenTest("read_defective_large_skip", action="-r -j 256", new_image=True, + ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("1600-1615"), Erase("6400-10000"), + ]), + extra_args=["--debug"]), + # read_new_with_range_no_ecc + GoldenTest("read_new_with_range_no_ecc", action="-r10000-15000", new_image=True, + ecc="no.ecc", + sim_cd=SimCD(source="master"), + extra_args=["--debug"]), + # read_new_with_invalid_range_no_ecc + GoldenTest("read_new_with_invalid_range_no_ecc", new_image=True, + action="-r10000-55000", + ecc="no.ecc", + sim_cd=SimCD(source="master"), + extra_args=["--debug"]), + # read_two_missing_secs_no_ecc + GoldenTest("read_two_missing_secs_no_ecc", action="-r -j 1", new_image=True, + ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("8020"), Erase("20999"), + ]), + extra_args=["--debug"]), + # read_with_ecc: read with ecc data + GoldenTest("read_with_ecc", action="-r", new_image=True, + ecc="master_ecc", + sim_cd=SimCD(source="master"), + extra_args=["--debug"]), + # read_with_non_existing_ecc + GoldenTest("read_with_non_existing_ecc", action="-r", new_image=True, + ecc="no_ecc", + sim_cd=SimCD(source="master"), + extra_args=["--debug"]), + # read_crc_errors_with_ecc + GoldenTest("read_crc_errors_with_ecc", action="-r", new_image=True, + ecc="master_ecc", + sim_cd=SimCD(source="master", damage=[ + Byteset(0, 100, 255), Byteset(1, 180, 200), + Byteset(7910, 23, 98), Byteset(20999, 55, 123), + ]), + extra_args=["--debug"]), + # read_no_tao_tail_with_ecc: --dao option + GoldenTest("read_no_tao_tail_with_ecc", action="--dao -r", new_image=True, + ecc="master_ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("20998-20999"), + ]), + extra_args=["--debug"]), + # read_more_missing_at_end_with_ecc + GoldenTest("read_more_missing_at_end_with_ecc", action="-r", new_image=True, + ecc="master_ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("20954-20999"), + ]), + extra_args=["--debug"]), + # read_with_hardware_failure + GoldenTest("read_with_hardware_failure", action="-r", new_image=True, + ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("5000:hardware failure"), + Erase("6000:hardware failure"), + ]), + extra_args=["--debug"]), + # read_with_ignored_hardware_failure + GoldenTest("read_with_ignored_hardware_failure", new_image=True, + action="-r --ignore-fatal-sense", + ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("5000:hardware failure"), + Erase("6000:hardware failure"), + ]), + extra_args=["--debug"]), + # read_medium_with_dsm + GoldenTest("read_medium_with_dsm", action="-r", new_image=True, + ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("4999:pass as dead sector marker"), + Erase("5005:pass as dead sector marker"), + Erase("5007:pass as dead sector marker"), + ]), + extra_args=["--debug"]), + # read_medium_with_dsm_verbose + GoldenTest("read_medium_with_dsm_verbose", action="-r -v", new_image=True, + ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("4999:pass as dead sector marker"), + Erase("5005:pass as dead sector marker"), + Erase("5007:pass as dead sector marker"), + ]), + extra_args=["--debug"]), + # read_multipass_partial_success: 3 passes, some recovered in pass 3 + GoldenTest("read_multipass_partial_success", new_image=True, + action="--read-medium=3 -r", + ecc="no.ecc", + sim_cd=SimCD(source="master", damage=[ + Erase("15800-16199"), + Erase("15900-16099:readable in pass 3"), + ]), + extra_args=["--debug"]), + ] + + # ------------------------------------------------------------------ + # Tests requiring special setup (plain methods) + # ------------------------------------------------------------------ + + def test_read_no_ecc_good_file(self, tmp_path): + """Read into existing and complete image file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_no_ecc_good_file", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_no_device(self, tmp_path): + """Read image from non-existent device.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-d", NON_EXISTENT_DEVICE, "-r", + ] + _run_golden_compare("read_no_device", cmd, tmp_path) + + @_SKIP_CHMOD_WIN + def test_read_no_device_access(self, tmp_path): + """Read image from device with insufficient permissions.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + fake_dev = os.path.join(str(tmp_path), "sdz") + with open(fake_dev, "w"): + pass + os.chmod(fake_dev, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-d", fake_dev, "-r", + ] + _run_golden_compare("read_no_device_access", cmd, tmp_path) + finally: + os.chmod(fake_dev, 0o644) + + def test_read_defective_no_ecc_again(self, tmp_path): + """Read defective image again with 1 sector skip and pre-existing partial image.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("100-200"), Erase("766"), Erase("2410"), + ]) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Erase("96-207"), Erase("752-767"), Erase("2400-2415"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-j", "1", "-r", + ] + _run_golden_compare("read_defective_no_ecc_again", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_truncated_no_ecc(self, tmp_path): + """Complete truncated image with no ecc data.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Truncate(ISOSIZE - 560)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_truncated_no_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_truncated_no_ecc_again(self, tmp_path): + """Complete truncated image from defective media.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Erase("20800-20875")]) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Truncate(ISOSIZE - 560)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-j", "1", "-r", + ] + _run_golden_compare("read_truncated_no_ecc_again", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_multipass_no_ecc_again(self, tmp_path): + """Complete truncated image from defective media with multiple passes.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("20800-20875"), Erase("3000-3045"), + ]) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Truncate(ISOSIZE - 560), Erase("2980-3120"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--read-medium=3", "--spinup-delay=0", "-j", "1", "-r", + ] + _run_golden_compare("read_multipass_no_ecc_again", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_with_gap_no_ecc(self, tmp_path): + """Complete truncated image with reading gap.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Truncate(10000)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r15000-end", + ] + _run_golden_compare("read_with_gap_no_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_with_ecc_good_file(self, tmp_path): + """Read with ecc into existing and complete image file.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_with_ecc_good_file", cmd, tmp_path, + image_path=tmp_iso) + + @_SKIP_CHMOD_WIN + def test_read_with_no_permission_for_ecc(self, tmp_path): + """Read with no permission to access ecc file.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master_ecc, tmp_ecc) + os.chmod(tmp_ecc, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_with_no_permission_for_ecc", cmd, tmp_path, + image_path=tmp_iso) + finally: + os.chmod(tmp_ecc, 0o644) + + def test_read_shorter_with_ecc(self, tmp_path): + """Read image shorter than expected with ecc.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Truncate(ISOSIZE - 44)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--ignore-iso-size", "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_shorter_with_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_longer_with_ecc(self, tmp_path): + """Read image longer than expected with ecc.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 22) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--ignore-iso-size", "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_longer_with_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_tao_tail_with_ecc(self, tmp_path): + """Read image, tao tail case, ecc data.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 1) + _apply_damage(sim_iso, [Erase("21000-21001")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--ignore-iso-size", "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_tao_tail_with_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_wrong_fp_with_ecc(self, tmp_path): + """Re-read image with wrong fingerprint, ecc data.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + # Create partial image (800 sectors) with modified fingerprint + with open(master, "rb") as src, open(tmp_iso, "wb") as dst: + dst.write(src.read(2048 * 800)) + _apply_damage(tmp_iso, [Byteset(16, 100, 200)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_wrong_fp_with_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_with_double_ecc(self, tmp_path): + """Read image with RS02 data and a RS01 ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + # Augment with RS02 + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS02", + "-n{}".format(ISOSIZE + 5000), "-c", check=True, + ) + # Create RS01 ecc + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e", tmp_ecc, + "-c", "-n", REDUNDANCY, check=True, + ) + # Introduce CRC error in RS02 area + _apply_damage(sim_iso, [Byteset(25910, 100, 200)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_with_double_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_with_incompatible_ecc(self, tmp_path): + """Read image with ecc file requiring a newer dvdisaster version.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + # Create ECC + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e", tmp_ecc, + "-c", "-n", REDUNDANCY, check=True, + ) + # Modify version bytes + _apply_damage(tmp_ecc, [ + Byteset(0, 88, 220), + Byteset(0, 89, 65), + Byteset(0, 90, 15), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_with_incompatible_ecc", cmd, tmp_path, + image_path=tmp_iso, + ignore_line_re=r'^\* $') + + def test_read_second_pass_with_ecc_success(self, tmp_path): + """Re-read medium with ecc, successful completion.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Erase("15800-16199")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_second_pass_with_ecc_success", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_second_pass_with_crc_error(self, tmp_path): + """Re-read medium with CRC error.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(15830, 8, 3)]) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Erase("15800-16199")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_second_pass_with_crc_error", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_medium_with_dsm_in_image(self, tmp_path): + """Complete image with uncorrectable dead sector markers (displacement).""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, _DAMAGE_DSM1) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_medium_with_dsm_in_image", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_medium_with_dsm_in_image_verbose(self, tmp_path): + """Complete image with uncorrectable dead sector markers, verbose.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, _DAMAGE_DSM1) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + ] + _run_golden_compare("read_medium_with_dsm_in_image_verbose", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_medium_with_dsm_in_image2(self, tmp_path): + """Complete image with uncorrectable dead sector markers (wrong fingerprint).""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, _DAMAGE_DSM2) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_medium_with_dsm_in_image2", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_medium_with_dsm_in_image2_verbose(self, tmp_path): + """Complete image with uncorrectable dead sector markers (wrong fp), verbose.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, _DAMAGE_DSM2) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + ] + _run_golden_compare("read_medium_with_dsm_in_image2_verbose", cmd, tmp_path, + image_path=tmp_iso) + + +# --------------------------------------------------------------------------- +# Test Suite: Adaptive Reading +# --------------------------------------------------------------------------- + +class TestRS01ReadAdaptive(GoldenTestSuite): + codec = "RS01" + codec_prefix = "RS01" + master = "rs01-master.iso" + master_ecc = "rs01-master.ecc" + image_size = 21000 + redundancy = "normal" + + tests = [] # All adaptive tests as plain methods due to varied patterns + + def test_adaptive_good(self, tmp_path): + """Read good image with adaptive reading.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_good", cmd, tmp_path, image_path=tmp_iso) + + def test_adaptive_no_ecc(self, tmp_path): + """Read image without ecc data, adaptive reading.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_no_ecc", cmd, tmp_path) + + def test_adaptive_no_device(self, tmp_path): + """Read image from non-existent device, adaptive reading.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-d", NON_EXISTENT_DEVICE, + "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_no_device", cmd, tmp_path) + + @_SKIP_CHMOD_WIN + def test_adaptive_no_device_access(self, tmp_path): + """Read image from device with insufficient permissions, adaptive reading.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + fake_dev = os.path.join(str(tmp_path), "sdz") + with open(fake_dev, "w"): + pass + os.chmod(fake_dev, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-d", fake_dev, + "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_no_device_access", cmd, tmp_path) + finally: + os.chmod(fake_dev, 0o644) + + def test_adaptive_defective_no_ecc(self, tmp_path): + """Read defective image without ecc, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("100-200"), Erase("766"), Erase("2410"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", "-v", + ] + _run_golden_compare("adaptive_defective_no_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_defective_large_skip(self, tmp_path): + """Read defective image with large sector skip, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("1600-1615"), Erase("6400-10000"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-j", "256", "--adaptive-read", "-v", + ] + _run_golden_compare("adaptive_defective_large_skip", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_truncated_no_ecc(self, tmp_path): + """Complete truncated image with adaptive reading, no ecc.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Truncate(ISOSIZE - 560)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_truncated_no_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_truncated_no_ecc_again(self, tmp_path): + """Complete truncated image from defective media, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Erase("20800-20875")]) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Truncate(ISOSIZE - 560)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", "--adaptive-read", + ] + _run_golden_compare("adaptive_truncated_no_ecc_again", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_with_gap_no_ecc(self, tmp_path): + """Complete truncated image with gap, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Truncate(10000)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r15000-end", "--adaptive-read", + ] + _run_golden_compare("adaptive_with_gap_no_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_with_gap_no_ecc2(self, tmp_path): + """Complete truncated image with gap, area ends before medium size.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Truncate(10000)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r15000-19999", "--adaptive-read", + ] + _run_golden_compare("adaptive_with_gap_no_ecc2", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_with_gap_no_ecc3(self, tmp_path): + """Complete truncated image with gap, overlapping already read part.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Truncate(10000)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r9000-15000", "--adaptive-read", + ] + _run_golden_compare("adaptive_with_gap_no_ecc3", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_new_with_range_no_ecc(self, tmp_path): + """Read new image with given range, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r10000-15000", "--adaptive-read", + ] + _run_golden_compare("adaptive_new_with_range_no_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_new_with_invalid_range_no_ecc(self, tmp_path): + """Read new image with invalid range, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r10000-55000", "--adaptive-read", + ] + _run_golden_compare("adaptive_new_with_invalid_range_no_ecc", cmd, tmp_path) + + @_SKIP_CHMOD_WIN + def test_adaptive_with_no_permission_for_ecc(self, tmp_path): + """Read with no permission to access ecc file, adaptive reading.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master_ecc, tmp_ecc) + os.chmod(tmp_ecc, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_with_no_permission_for_ecc", cmd, tmp_path, + image_path=tmp_iso) + finally: + os.chmod(tmp_ecc, 0o644) + + def test_adaptive_crc_errors_with_ecc(self, tmp_path): + """Read image with CRC errors, adaptive reading.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Byteset(0, 100, 255), Byteset(1, 180, 200), + Byteset(7910, 23, 98), Byteset(20999, 55, 123), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_crc_errors_with_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_shorter_with_ecc(self, tmp_path): + """Read shorter image with ecc, adaptive reading.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Truncate(ISOSIZE - 44)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--ignore-iso-size", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_shorter_with_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_longer_with_ecc(self, tmp_path): + """Read longer image with ecc, adaptive reading.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 22) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--ignore-iso-size", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_longer_with_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_tao_tail_with_ecc(self, tmp_path): + """Read image, tao tail case, adaptive reading.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 1) + _apply_damage(sim_iso, [Erase("21000-21001")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--ignore-iso-size", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_tao_tail_with_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_no_tao_tail_with_ecc(self, tmp_path): + """Read image with --dao, adaptive reading.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Erase("20998-20999")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--dao", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_no_tao_tail_with_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_wrong_fp_with_ecc(self, tmp_path): + """Re-read image with wrong fingerprint, adaptive reading. + + Note: the golden file is named 'adapive_wrong_fp_with_ecc' (typo in original). + """ + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + # Create partial image (800 sectors) with modified fingerprint + with open(master, "rb") as src, open(tmp_iso, "wb") as dst: + dst.write(src.read(2048 * 800)) + _apply_damage(tmp_iso, [Byteset(16, 100, 200)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + # Note: golden file has typo "adapive" (missing 't') + _run_golden_compare("adapive_wrong_fp_with_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_with_double_ecc(self, tmp_path): + """Read image with RS02 data and RS01 ecc file, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + # Augment with RS02 + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS02", + "-n{}".format(ISOSIZE + 5000), "-c", check=True, + ) + # Create RS01 ecc + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e", tmp_ecc, + "-c", "-n", REDUNDANCY, check=True, + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_with_double_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_with_incompatible_ecc(self, tmp_path): + """Read image with ecc requiring newer version, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs01-tmp.ecc") + shutil.copy2(master, sim_iso) + # Create ECC + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e", tmp_ecc, + "-c", "-n", REDUNDANCY, check=True, + ) + # Modify version bytes + _apply_damage(tmp_ecc, [ + Byteset(0, 88, 220), + Byteset(0, 89, 65), + Byteset(0, 90, 15), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_with_incompatible_ecc", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_with_hardware_failure(self, tmp_path): + """Read image with simulated hardware failure, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Erase("5000:hardware failure")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.iso")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_with_hardware_failure", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_with_ignored_hardware_failure(self, tmp_path): + """Read image ignoring hardware failure, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Erase("5000:hardware failure")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.iso")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", "--ignore-fatal-sense", + ] + _run_golden_compare("adaptive_with_ignored_hardware_failure", cmd, tmp_path, + image_path=tmp_iso) + + def test_adaptive_medium_with_dsm(self, tmp_path): + """Read medium with dead sector markers, adaptive reading.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs01-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Erase("4999:pass as dead sector marker")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(os.path.join(_ISODIR, "no.ecc")), + "--debug", + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_medium_with_dsm", cmd, tmp_path, + image_path=tmp_iso) diff --git a/tests/test_rs02.py b/tests/test_rs02.py new file mode 100644 index 00000000..6ab14fb6 --- /dev/null +++ b/tests/test_rs02.py @@ -0,0 +1,1937 @@ +""" +RS02 regression tests -- all tests from regtest/rs02.bash. + +RS02 is an augmented image codec: ECC data is embedded directly in the image +(no separate .ecc file). Tests are grouped into: + - TestRS02Strip: 2 strip tests + - TestRS02Verify: 31 verify tests (incl. modulo_glitch and cross-codec) + - TestRS02Create: 18 creation tests + - TestRS02Repair: 25 repair/fix tests + - TestRS02Scan: 22 scanning tests + - TestRS02ReadLinear: 28 linear reading tests (read_multipass_ecc_partial_success + is in test_multipass_read.py) + - TestRS02ReadAdaptive: 24 adaptive reading tests +""" + +import difflib +import os +import shutil + +import pytest + +from framework import ( + Byteset, + Erase, + GoldenTest, + GoldenTestSuite, + AppendFile, + PadSectors, + SimCD, + Truncate, + _ISODIR, + _TMPDIR, + _find_binary, + _md5_file, + _run_dvdisaster, + _apply_damage, + clean_output, + parse_golden_file, + resolve_golden_path, +) + +_PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +_DATABASE = os.path.join(_PROJECT_ROOT, "regtest", "database") +_FIXED_RANDOM_SEQ = os.path.join(_PROJECT_ROOT, "regtest", "fixed-random-sequence") + +# Constants matching the bash variables +ISOSIZE = 30000 +ECCSIZE = 35000 +REAL_ECCSIZE = 34932 +SETVERSION = "0.80" +REDUNDANCY = "normal" + +# Header positions used by modulo_glitch tests (21 headers) +HMG_HEADERS = [ + 274300, 278528, 282624, 286720, 290816, 294912, 299008, 303104, + 307200, 311296, 315392, 319488, 323584, 327680, 331776, 335872, + 339968, 344064, 348160, 352256, 356352, +] + +# Sectors to erase in modulo_glitch4 (disambiguating sectors) +HMG_DISAMBIG_SECTORS = [ + 276480, 280577, 284672, 288768, 292864, 296960, 301056, 305152, + 309248, 313344, 317440, 321536, 325632, 329728, 333824, 337920, + 342016, 346112, 350208, +] + + +# ────────────────────────────────────────────────────────────────── +# Helper: Ensure raw (unaugmented) image exists +# ────────────────────────────────────────────────────────────────── + +def _ensure_raw_image(): + """Create the raw (unaugmented) 30000-sector image in ISODIR.""" + raw_path = os.path.join(_ISODIR, "rs02-raw.iso") + if os.path.isfile(raw_path): + return raw_path + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(raw_path), + "--random-image", str(ISOSIZE), + ) + return raw_path + + +def _ensure_master(): + """Create the RS02 augmented master image (raw + RS02 ECC).""" + master_path = os.path.join(_ISODIR, "rs02-master.iso") + if os.path.isfile(master_path): + return master_path + raw_path = _ensure_raw_image() + shutil.copy2(raw_path, master_path) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + ) + return master_path + + +def _ensure_plus137(): + """Create master image with 137 trailing bytes.""" + path = os.path.join(_ISODIR, "rs02-plus137.iso") + if os.path.isfile(path): + return path + raw_path = _ensure_raw_image() + shutil.copy2(raw_path, path) + # Append 137 bytes from fixed-random-sequence + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(137) + with open(path, "ab") as f: + f.write(data) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(path), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + ) + return path + + +def _ensure_hmg_master(): + """Create header-modulo-glitch master image (274300 sectors).""" + path = os.path.join(_ISODIR, "rs02-hmg-master.iso") + if os.path.isfile(path): + return path + _run_dvdisaster( + "--debug", "-i", path, + "--random-image", "274300", + ) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(path), + "-mRS02", "-c", + ) + return path + + +def _apply_old_style_headers(image_path): + """Patch all 21 ECC headers to simulate pre-0.79.5 (old style) format. + + This zeroes out the size info bytes and patches the self-checksum in each + header to simulate headers created by dvdisaster 0.72 or earlier. + """ + for header in HMG_HEADERS: + # Patch self-checksum + for offset, val in [(96, 38), (97, 245), (98, 168), (99, 221)]: + _run_dvdisaster("--debug", "-i", image_path, + "--byteset", "{},{},{}".format(header, offset, val)) + # Zero out size info + for offset in range(128, 136): + _run_dvdisaster("--debug", "-i", image_path, + "--byteset", "{},{},0".format(header, offset)) + + +# ────────────────────────────────────────────────────────────────── +# Helper: golden file comparison for plain-method tests +# ────────────────────────────────────────────────────────────────── + +def _run_golden_compare(test_name, cmd_args, tmp_path, image_path=None, + ignore_line=None): + """Run dvdisaster and compare against a golden file.""" + golden_base = os.path.join(_DATABASE, "RS02_{}".format(test_name)) + golden_path = resolve_golden_path(golden_base) + if not os.path.isfile(golden_path): + pytest.skip("Golden file not found: {}".format(golden_path)) + + image_md5, ecc_md5, expected_output = parse_golden_file(golden_path) + + _, raw_output = _run_dvdisaster(*cmd_args) + + work_dir = str(tmp_path) + cleaned = clean_output( + raw_output, + tmp_dirs=[work_dir, _TMPDIR, _ISODIR], + strip_header=True, + ignore_lines=[ignore_line] if ignore_line else None, + ) + + if cleaned != expected_output: + diff = difflib.unified_diff( + expected_output.splitlines(keepends=True), + cleaned.splitlines(keepends=True), + fromfile="expected (golden)", + tofile="actual (cleaned)", + ) + diff_text = "".join(diff) + assert cleaned == expected_output, ( + "Output mismatch for test '{}':\n{}".format(test_name, diff_text) + ) + + if image_md5 is not None and image_path and os.path.isfile(image_path): + actual_md5 = _md5_file(image_path) + assert actual_md5 == image_md5, ( + "Image MD5 mismatch for '{}': expected {}, got {}".format( + test_name, image_md5, actual_md5 + ) + ) + + if ecc_md5 is not None: + # For RS02, ecc is embedded in the image — check if there's a + # separate ecc file that should be verified + ecc_path = os.path.join(_TMPDIR, "rs02-tmp.ecc") + if os.path.isfile(ecc_path): + actual_ecc_md5 = _md5_file(ecc_path) + assert actual_ecc_md5 == ecc_md5, ( + "ECC MD5 mismatch for '{}': expected {}, got {}".format( + test_name, ecc_md5, actual_ecc_md5 + ) + ) + + +# ══════════════════════════════════════════════════════════════════ +# Strip tests (2) +# ══════════════════════════════════════════════════════════════════ + +class TestRS02Strip(GoldenTestSuite): + codec = "RS02" + codec_prefix = "RS02" + master = "rs02-master.iso" + image_size = ISOSIZE + tests = [] + + def _ensure_master(self): + return _ensure_master() + + def test_strip_ecc(self, tmp_path): + """Strip ECC from an augmented image.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, tmp_iso) + _run_golden_compare("strip_ecc", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-v", "--strip"], + tmp_path, image_path=tmp_iso) + + def test_strip_ecc_not(self, tmp_path): + """Strip ECC from a non-augmented (already stripped) image.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, tmp_iso) + # First strip the ECC + _run_dvdisaster("-i{}".format(tmp_iso), "--strip") + # Then try to strip again + _run_golden_compare("strip_ecc_not", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-v", "--strip"], + tmp_path, image_path=tmp_iso) + + +# ══════════════════════════════════════════════════════════════════ +# Verify tests (31) +# ══════════════════════════════════════════════════════════════════ + +class TestRS02Verify(GoldenTestSuite): + codec = "RS02" + codec_prefix = "RS02" + master = "rs02-master.iso" + image_size = ISOSIZE + + tests = [ + # Simple verify tests + GoldenTest("good", action="-t -v", use_master=True), + GoldenTest("good_quick", action="-tq", use_master=True), + GoldenTest("no_image", action="-t", image="no.iso", ecc="none.file"), + GoldenTest("truncated", action="-t", + damage=[Truncate(REAL_ECCSIZE - 5)]), + GoldenTest("plus1", action="-t", + damage=[PadSectors(1)]), + GoldenTest("plus17", action="-t", + damage=[PadSectors(17)]), + # Defective headers + GoldenTest("bad_header", action="-t", + damage=[Byteset(30592, 1, 1)]), + GoldenTest("bad_headers", action="-t", + damage=[Byteset(30592, 1, 1), Byteset(31488, 100, 1)]), + GoldenTest("missing_headers", action="-t", + damage=[Erase("30080"), Erase("31360"), Erase("34816"), + Byteset(30592, 100, 1), Byteset(31488, 100, 1)]), + # Missing sectors in data/crc/ecc portions + GoldenTest("missing_data_sectors", action="-t", + damage=[Erase("1000-1049"), Erase("21230"), + Erase("22450-22457")]), + GoldenTest("missing_crc_sectors", action="-t", + damage=[Erase("30020-30030"), Erase("30034")]), + GoldenTest("missing_ecc_sectors", action="-t", + damage=[Erase("32020-32030"), Erase("33034")]), + # Bad bytes in data/crc/ecc + GoldenTest("data_bad_byte", action="-t", + damage=[Byteset(1235, 50, 10)]), + GoldenTest("crc_bad_byte", action="-t", + damage=[Byteset(30020, 50, 10)]), + GoldenTest("ecc_bad_byte", action="-t", + damage=[Byteset(33100, 50, 10)]), + # ECC offset tests + GoldenTest("good_0_offset", action="-v -t", use_master=True), + # DSM tests + GoldenTest("uncorrectable_dsm_in_image", action="-t", + damage=[Erase("3030"), Byteset(3030, 353, 49), + Erase("4400"), Byteset(4400, 353, 53), + Erase("4411"), Byteset(4411, 353, 53)]), + GoldenTest("uncorrectable_dsm_in_image_verbose", action="-t -v", + damage=[Erase("3030"), Byteset(3030, 353, 49), + Erase("4400"), Byteset(4400, 353, 53), + Erase("4411"), Byteset(4411, 353, 53)]), + GoldenTest("uncorrectable_dsm_in_image2", action="-t", + damage=[Erase("3030"), Byteset(3030, 416, 55), + Byteset(3030, 556, 32), Byteset(3030, 557, 50), + Erase("4400"), Byteset(4400, 416, 53), + Byteset(4400, 556, 32), Byteset(4400, 557, 50), + Erase("4411"), Byteset(4411, 416, 53), + Byteset(4411, 556, 32), Byteset(4411, 557, 50)]), + GoldenTest("uncorrectable_dsm_in_image2_verbose", action="-t -v", + damage=[Erase("3030"), Byteset(3030, 416, 55), + Byteset(3030, 556, 32), Byteset(3030, 557, 50), + Erase("4400"), Byteset(4400, 416, 53), + Byteset(4400, 556, 32), Byteset(4400, 557, 50), + Erase("4411"), Byteset(4411, 416, 53), + Byteset(4411, 556, 32), Byteset(4411, 557, 50)]), + # DSM in CRC section + GoldenTest("uncorrectable_dsm_in_image3", action="-t", + damage=[Erase("30030"), Byteset(30030, 416, 55), + Byteset(30030, 556, 32), Byteset(30030, 557, 50), + Erase("30031"), Byteset(30031, 416, 53), + Byteset(30031, 556, 32), Byteset(30031, 557, 50), + Erase("30032"), Byteset(30032, 416, 53), + Byteset(30032, 556, 32), Byteset(30032, 557, 50)]), + ] + + def _ensure_master(self): + return _ensure_master() + + # -- Tests requiring special setup (plain methods) -- + + def test_good_150_offset(self, tmp_path): + """Good image with 150 sectors ECC offset.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + # Fake 150 more sectors in VSS + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--byteset", "16,80,198") + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--byteset", "16,87,198") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS02", + "-n{}".format(ECCSIZE), "-c") + _run_golden_compare("good_150_offset", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-v", "-t"], + tmp_path, image_path=tmp_iso) + + def test_bad_master(self, tmp_path): + """Image with missing master header.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, tmp_iso) + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), "--erase", "30000") + _run_golden_compare("bad_master", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-v", "-t"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_modulo_glitch(self, tmp_path): + """Header modulo glitch, post 0.79.5 style header.""" + hmg_path = _ensure_hmg_master() + _run_golden_compare("modulo_glitch", + ["--regtest", "--no-progress", + "-i{}".format(hmg_path), "-v", "-t"], + tmp_path) + + @pytest.mark.slow + def test_modulo_glitch2(self, tmp_path): + """Header modulo glitch, old style, complete image.""" + hmg_path = _ensure_hmg_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, tmp_iso) + _apply_old_style_headers(tmp_iso) + _run_golden_compare("modulo_glitch2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-v", "-t"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_modulo_glitch3(self, tmp_path): + """Header modulo glitch, old style, truncated image.""" + hmg_path = _ensure_hmg_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, tmp_iso) + _apply_old_style_headers(tmp_iso) + _run_dvdisaster("--debug", "-i", tmp_iso, "--truncate=357520") + _run_golden_compare("modulo_glitch3", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-v", "-t"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_modulo_glitch4(self, tmp_path): + """Header modulo glitch, old style, truncated, missing ref sectors.""" + hmg_path = _ensure_hmg_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, tmp_iso) + _apply_old_style_headers(tmp_iso) + _run_dvdisaster("--debug", "-i", tmp_iso, "--truncate=357520") + for sector in HMG_DISAMBIG_SECTORS: + _run_dvdisaster("--debug", "-i", tmp_iso, + "--erase", str(sector)) + _run_golden_compare("modulo_glitch4", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-v", "-t"], + tmp_path, image_path=tmp_iso) + + def test_with_rs01_file(self, tmp_path): + """Augmented image with outer RS01 error correction file.""" + master_path = _ensure_master() + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + _run_golden_compare("with_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(master_path), + "-e{}".format(tmp_ecc), "-v", "-t"], + tmp_path) + + def test_with_wrong_rs01_file(self, tmp_path): + """Augmented image with non-matching RS01 error correction file.""" + master_path = _ensure_master() + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + _run_dvdisaster("--debug", "-i{}".format(tmp_ecc), + "--byteset", "0,24,1") + _run_golden_compare("with_wrong_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(master_path), + "-e{}".format(tmp_ecc), "-v", "-t"], + tmp_path) + + def test_with_rs03_file(self, tmp_path): + """Augmented image with outer RS03 error correction file.""" + master_path = _ensure_master() + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + _run_golden_compare("with_rs03_file", + ["--regtest", "--no-progress", + "-i{}".format(master_path), + "-e{}".format(tmp_ecc), "-v", "-t"], + tmp_path) + + def test_with_wrong_rs03_file(self, tmp_path): + """Augmented image with non-matching RS03 error correction file.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + # Create image with manipulated fingerprint + shutil.copy2(master_path, tmp_iso) + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--byteset", "16,240,1") + # Create ecc file for "wrong" image + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + # Test against original image + _run_golden_compare("with_wrong_rs03_file", + ["--regtest", "--no-progress", + "-i{}".format(master_path), + "-e{}".format(tmp_ecc), "-v", "-t"], + tmp_path) + + +# ══════════════════════════════════════════════════════════════════ +# Creation tests (18) +# ══════════════════════════════════════════════════════════════════ + +class TestRS02Create(GoldenTestSuite): + codec = "RS02" + codec_prefix = "RS02" + master = "rs02-master.iso" + image_size = ISOSIZE + tests = [] + + def _ensure_master(self): + return _ensure_master() + + def _create_test(self, test_name, tmp_path, source="raw", action_args=None, + pre_damage=None, pre_cmds=None, image_path=None, + ecc_path=None): + """Generic creation test helper.""" + if image_path is None: + if source == "raw": + src = _ensure_raw_image() + else: + src = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(src, tmp_iso) + image_path = tmp_iso + + if pre_damage: + for op in pre_damage: + args = op.cli_args() + _run_dvdisaster("--debug", "-i{}".format(image_path), *args) + + if pre_cmds: + for cmd in pre_cmds: + cmd(image_path) + + cmd_args = ["--regtest", "--no-progress", + "-i{}".format(image_path)] + if ecc_path: + cmd_args.append("-e{}".format(ecc_path)) + cmd_args.extend(["-mRS02", "-n{}".format(ECCSIZE), "-c"]) + cmd_args.extend(["--debug", "--set-version", SETVERSION]) + if action_args: + cmd_args.extend(action_args) + + _run_golden_compare(test_name, cmd_args, tmp_path, + image_path=image_path) + + def test_ecc_create(self, tmp_path): + """Augmented image creation.""" + self._create_test("ecc_create", tmp_path) + + def test_ecc_missing_image(self, tmp_path): + """ECC creation with missing image.""" + no_file = os.path.join(str(tmp_path), "none.file") + _run_golden_compare("ecc_missing_image", + ["--regtest", "--no-progress", + "-i{}".format(no_file), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", "--set-version", SETVERSION], + tmp_path) + + def test_ecc_no_read_perm(self, tmp_path): + """ECC creation with no read permission.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + os.chmod(tmp_iso, 0o000) + try: + _run_golden_compare("ecc_no_read_perm", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + finally: + os.chmod(tmp_iso, 0o644) + + def test_ecc_no_write_perm(self, tmp_path): + """ECC creation with no write permission.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + os.chmod(tmp_iso, 0o400) + try: + _run_golden_compare("ecc_no_write_perm", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + finally: + os.chmod(tmp_iso, 0o644) + + def test_ecc_from_rs02(self, tmp_path): + """ECC creation from already RS02-augmented image.""" + self._create_test("ecc_from_rs02", tmp_path, source="master") + + def test_ecc_from_rs03(self, tmp_path): + """ECC creation from RS03-augmented image.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + _run_dvdisaster("--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS03", + "-n{}".format(ECCSIZE), "-c") + _run_golden_compare("ecc_from_rs03", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_from_larger_rs02(self, tmp_path): + """ECC creation from RS02-augmented image with larger redundancy.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + _run_dvdisaster("--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS02", + "-n{}".format(ECCSIZE + 5000), "-c") + _run_golden_compare("ecc_from_larger_rs02", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_from_rs02_non_blocksize(self, tmp_path): + """ECC creation from RS02-augmented image with non-block size.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + # Append 56 bytes of "1" + with open(tmp_iso, "ab") as f: + f.write(b"1" * 56) + _run_dvdisaster("--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS02", + "-n{}".format(ECCSIZE), "-c") + _run_golden_compare("ecc_from_rs02_non_blocksize", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_from_rs03_non_blocksize(self, tmp_path): + """ECC creation from RS03-augmented image with non-block size.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + # Append 137 bytes from fixed-random-sequence + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(137) + with open(tmp_iso, "ab") as f: + f.write(data) + _run_dvdisaster("--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS03", + "-n{}".format(ECCSIZE), "-c") + _run_golden_compare("ecc_from_rs03_non_blocksize", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "-a", "RS02", + "--debug", "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_from_larger_rs02_non_blocksize(self, tmp_path): + """ECC creation from RS02-augmented image, non-block size, larger redundancy.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"1" * 56) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS02", + "-n{}".format(ECCSIZE + 5000), "-c") + _run_golden_compare("ecc_from_larger_rs02_non_blocksize", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_non_blocksize(self, tmp_path): + """ECC creation from non-blocksize image.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + # Append 137 zero bytes + with open(tmp_iso, "ab") as f: + f.write(b"\x00" * 137) + _run_golden_compare("ecc_non_blocksize", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_missing_sectors(self, tmp_path): + """ECC creation with unreadable sectors.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), "--erase", "719") + _run_golden_compare("ecc_missing_sectors", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_create_after_read(self, tmp_path): + """ECC creation after reading image (read + create in one pass).""" + raw_path = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "rs02-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, sim_iso) + _run_golden_compare("ecc_create_after_read", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-r", "--spinup-delay=0", + "-mRS02", "-n{}".format(ECCSIZE), "-c", "-v", + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_create_after_partial_read(self, tmp_path): + """ECC creation after completing a partial image.""" + raw_path = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "rs02-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + no_ecc = os.path.join(str(tmp_path), "no.ecc") + shutil.copy2(raw_path, sim_iso) + shutil.copy2(sim_iso, tmp_iso) + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--erase", "3000-3999") + _run_golden_compare("ecc_create_after_partial_read", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(no_ecc), + "-r", "--spinup-delay=0", + "-mRS02", "-n{}".format(ECCSIZE), "-c", "-v", + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_recreate_after_read_rs01(self, tmp_path): + """Read image with RS01 ECC and create RS02 ECC.""" + raw_path = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "rs02-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + shutil.copy2(raw_path, sim_iso) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e{}".format(tmp_ecc), + "-c", REDUNDANCY) + _run_golden_compare("ecc_recreate_after_read_rs01", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(tmp_ecc), + "-r", "--spinup-delay=0", + "-mRS02", "-n{}".format(ECCSIZE), "-c", "-v", + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_recreate_after_read_rs02(self, tmp_path): + """Read image with RS02 ECC and create new RS02 ECC.""" + raw_path = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "rs02-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + no_ecc = os.path.join(str(tmp_path), "no.ecc") + shutil.copy2(raw_path, sim_iso) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS02", "-n50000", "-c") + _run_golden_compare("ecc_recreate_after_read_rs02", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(no_ecc), + "-r", "--spinup-delay=0", + "-mRS02", "-n{}".format(ECCSIZE), "-c", "-v", + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_recreate_after_read_rs03i(self, tmp_path): + """Read image with RS03i ECC and create RS02 ECC.""" + raw_path = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "rs02-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, sim_iso) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS03", + "-n{}".format(ISOSIZE + 7000), "-c") + _run_golden_compare("ecc_recreate_after_read_rs03i", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-r", "--spinup-delay=0", + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + def test_ecc_recreate_after_read_rs03f(self, tmp_path): + """Read image with RS03f ECC and create RS02 ECC.""" + raw_path = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "rs02-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + shutil.copy2(raw_path, sim_iso) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e{}".format(tmp_ecc), + "-c", "-n", "9r", "-mRS03", "-o", "file") + _run_golden_compare("ecc_recreate_after_read_rs03f", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(tmp_ecc), + "-r", "--spinup-delay=0", + "-mRS02", "-n{}".format(ECCSIZE), "-c", + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--set-version", SETVERSION], + tmp_path, image_path=tmp_iso) + + +# ══════════════════════════════════════════════════════════════════ +# Repair tests (25) +# ══════════════════════════════════════════════════════════════════ + +class TestRS02Repair(GoldenTestSuite): + codec = "RS02" + codec_prefix = "RS02" + master = "rs02-master.iso" + image_size = ISOSIZE + + tests = [ + # Simple fix tests using master as source + GoldenTest("fix_good_image", action="--debug --set-version {} -f".format(SETVERSION)), + GoldenTest("fix_bad_master", action="--debug --set-version {} -f".format(SETVERSION), + damage=[Erase("30000")]), + GoldenTest("fix_bad_header", action="--debug --set-version {} -f".format(SETVERSION), + damage=[Byteset(30592, 1, 1)]), + GoldenTest("fix_bad_headers", action="--debug --set-version {} -f".format(SETVERSION), + damage=[Byteset(30592, 1, 1), Byteset(31488, 100, 1)]), + GoldenTest("fix_missing_headers", action="--debug --set-version {} -f".format(SETVERSION), + damage=[Erase("30080"), Erase("31360"), Erase("34816"), + Byteset(30592, 100, 1), Byteset(31488, 100, 1)]), + GoldenTest("fix_missing_data_sectors", + action="--debug --set-version {} -f".format(SETVERSION), + damage=[Erase("1000-1049"), Erase("21230"), + Erase("22450-22457")]), + GoldenTest("fix_missing_crc_sectors", + action="--debug --set-version {} -f".format(SETVERSION), + damage=[Erase("30020-30030"), Erase("30034")]), + GoldenTest("fix_missing_ecc_sectors", + action="--debug --set-version {} -f".format(SETVERSION), + damage=[Erase("32020-32030"), Erase("33034")]), + GoldenTest("fix_data_bad_byte", + action="--debug --set-version {} -f".format(SETVERSION), + damage=[Byteset(1235, 50, 10)]), + GoldenTest("fix_crc_bad_byte", + action="--debug --set-version {} -f".format(SETVERSION), + damage=[Byteset(30020, 50, 10)]), + GoldenTest("fix_ecc_bad_byte", + action="--debug --set-version {} -f".format(SETVERSION), + damage=[Byteset(33100, 50, 10)]), + GoldenTest("fix_good_0_offset", + action="--debug --set-version {} -v -f".format(SETVERSION)), + ] + + def _ensure_master(self): + return _ensure_master() + + def test_fix_no_read_perm(self, tmp_path): + """Fix with no read permission (uses raw image, not master).""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + os.chmod(tmp_iso, 0o000) + try: + _run_golden_compare("fix_no_read_perm", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, "-f"], + tmp_path, image_path=tmp_iso) + finally: + os.chmod(tmp_iso, 0o644) + + def test_fix_no_write_perm(self, tmp_path): + """Fix with no write permission (uses raw image).""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + os.chmod(tmp_iso, 0o400) + try: + _run_golden_compare("fix_no_write_perm", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, "-f"], + tmp_path, image_path=tmp_iso) + finally: + os.chmod(tmp_iso, 0o644) + + def test_fix_image_plus137(self, tmp_path): + """Fix image with 137 extra bytes.""" + plus137_path = _ensure_plus137() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(plus137_path, tmp_iso) + _run_dvdisaster("-i{}".format(tmp_iso), "--debug", "--erase", "17000") + _run_golden_compare("fix_image_plus137", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-f"], + tmp_path, image_path=tmp_iso) + + def test_fix_image_error_in_plus137(self, tmp_path): + """Fix image with error in 137 extra bytes.""" + plus137_path = _ensure_plus137() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(plus137_path, tmp_iso) + _run_dvdisaster("-i{}".format(tmp_iso), "--debug", + "--byteset", "30000,111,111") + _run_dvdisaster("-i{}".format(tmp_iso), "--debug", + "--byteset", "30000,500,123") + _run_golden_compare("fix_image_error_in_plus137", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-f"], + tmp_path, image_path=tmp_iso) + + def test_fix_truncated_image(self, tmp_path): + """Fix a truncated image.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, tmp_iso) + trunc_size = REAL_ECCSIZE - 210 + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--truncate={}".format(trunc_size)) + _run_golden_compare("fix_truncated_image", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, "-f"], + tmp_path, image_path=tmp_iso) + + def test_fix_trailing_bytes(self, tmp_path): + """Fix image with trailing bytes.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"some trailing garbage appended for testing\n") + _run_golden_compare("fix_trailing_bytes", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, "-f"], + tmp_path, image_path=tmp_iso) + + def test_fix_trailing_tao(self, tmp_path): + """Fix image with trailing TAO garbage.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"\x00" * (2 * 2048)) + _run_golden_compare("fix_trailing_tao", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, "-f"], + tmp_path, image_path=tmp_iso) + + def test_fix_trailing_garbage(self, tmp_path): + """Fix image with trailing garbage (general case).""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"\x00" * (23 * 2048)) + _run_golden_compare("fix_trailing_garbage", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, "-f"], + tmp_path, image_path=tmp_iso) + + def test_fix_trailing_garbage2(self, tmp_path): + """Fix image with trailing garbage, with --truncate.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"\x00" * (23 * 2048)) + _run_golden_compare("fix_trailing_garbage2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-f", "--truncate"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_fix_large_file(self, tmp_path): + """Large image with missing sectors in all three sections.""" + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--random-image", "223456") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS02", "-c") + _run_dvdisaster("-i{}".format(tmp_iso), "--debug", + "--erase", "50000-50015") + _run_dvdisaster("-i{}".format(tmp_iso), "--debug", + "--erase", "223600-223605") + _run_dvdisaster("-i{}".format(tmp_iso), "--debug", + "--erase", "279000-279007") + _run_golden_compare("fix_large_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-f"], + tmp_path, image_path=tmp_iso) + + def test_fix_good_150_offset(self, tmp_path): + """Good image with 150 sectors ECC offset.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--byteset", "16,80,198") + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--byteset", "16,87,198") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS02", + "-n{}".format(ECCSIZE), "-c") + _run_golden_compare("fix_good_150_offset", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-v", "-f"], + tmp_path, image_path=tmp_iso) + + def test_fix_with_rs01_file(self, tmp_path): + """RS02 image with RS01 ecc file.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + shutil.copy2(master_path, tmp_iso) + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--byteset", "34930,0,1") + _run_golden_compare("fix_with_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(tmp_ecc), + "--debug", "--set-version", SETVERSION, "-f"], + tmp_path, image_path=tmp_iso) + + def test_fix_with_rs03_file(self, tmp_path): + """RS02 image with RS03 error correction file.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + shutil.copy2(master_path, tmp_iso) + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--byteset", "34930,0,1") + _run_golden_compare("fix_with_rs03_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(tmp_ecc), + "--debug", "--set-version", SETVERSION, "-f"], + tmp_path, image_path=tmp_iso) + + +# ══════════════════════════════════════════════════════════════════ +# Scanning tests (22) +# ══════════════════════════════════════════════════════════════════ + +class TestRS02Scan(GoldenTestSuite): + codec = "RS02" + codec_prefix = "RS02" + master = "rs02-master.iso" + image_size = ISOSIZE + + tests = [ + GoldenTest("scan_good", action="-s", + sim_cd=SimCD(source="master"), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_shorter", action="-s -v", + sim_cd=SimCD(source="master", + damage=[Truncate(REAL_ECCSIZE - 44)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_tao_tail", action="-s", + sim_cd=SimCD(source="master", + damage=[AppendFile(_FIXED_RANDOM_SEQ), + Erase("34932-34933")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_no_tao_tail", action="-s --dao", + sim_cd=SimCD(source="master", + damage=[Erase("34930-34931")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_bad_header", action="-s", + sim_cd=SimCD(source="master", + damage=[Byteset(30592, 1, 1)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_bad_headers", action="-s", + sim_cd=SimCD(source="master", + damage=[Byteset(30592, 1, 1), + Byteset(31488, 100, 1)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_missing_data_sectors", action="-s", + sim_cd=SimCD(source="master", + damage=[Erase("1000-1049"), Erase("21230"), + Erase("22450-22457")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_missing_crc_sectors", action="-s", + sim_cd=SimCD(source="master", + damage=[Erase("30020-30030"), + Erase("30034")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_missing_ecc_sectors", action="-s", + sim_cd=SimCD(source="master", + damage=[Erase("32020-32030"), + Erase("33034")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_data_bad_byte", action="-s", + sim_cd=SimCD(source="master", + damage=[Byteset(1235, 50, 10)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_crc_bad_byte", action="-s", + sim_cd=SimCD(source="master", + damage=[Byteset(30020, 50, 10)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("scan_ecc_bad_byte", action="-s", + sim_cd=SimCD(source="master", + damage=[Byteset(33100, 50, 10)]), + extra_args=["--spinup-delay=0"]), + ] + + def _ensure_master(self): + return _ensure_master() + + def test_scan_longer(self, tmp_path): + """Scan image longer than expected.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + sim_iso = os.path.join(str(tmp_path), "sim.iso") + shutil.copy2(master_path, sim_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + pad_data = f.read() + with open(sim_iso, "ab") as f: + for _ in range(23): + f.write(pad_data) + _run_golden_compare("scan_longer", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v"], + tmp_path, image_path=tmp_iso) + + def test_scan_incompatible_ecc(self, tmp_path): + """Scan image requiring a newer dvdisaster version.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, sim_iso) + # Fake version 99.99 + for sector, offset, val in [ + (30000, 84, 220), (30000, 85, 65), (30000, 86, 15), + (30000, 88, 220), (30000, 89, 65), (30000, 90, 15), + (30000, 96, 106), (30000, 97, 230), (30000, 98, 75), + (30000, 99, 203), + ]: + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "{},{},{}".format(sector, offset, val)) + _run_golden_compare("scan_incompatible_ecc", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-s"], + tmp_path, image_path=tmp_iso, + ignore_line=r'^\* $') + + @pytest.mark.slow + def test_scan_modulo_glitch(self, tmp_path): + """Scan with header modulo glitch, post 0.79.5 style.""" + hmg_path = _ensure_hmg_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + _run_golden_compare("scan_modulo_glitch", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(hmg_path), + "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_scan_modulo_glitch2(self, tmp_path): + """Scan with header modulo glitch, old style, complete image.""" + hmg_path = _ensure_hmg_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, sim_iso) + _apply_old_style_headers(sim_iso) + _run_golden_compare("scan_modulo_glitch2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_scan_modulo_glitch3(self, tmp_path): + """Scan with header modulo glitch, old style, truncated.""" + hmg_path = _ensure_hmg_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, sim_iso) + _apply_old_style_headers(sim_iso) + _run_dvdisaster("--debug", "-i", sim_iso, "--truncate=357520") + _run_golden_compare("scan_modulo_glitch3", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_scan_modulo_glitch4(self, tmp_path): + """Scan with header modulo glitch, old style, truncated, missing ref sectors.""" + hmg_path = _ensure_hmg_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, sim_iso) + _apply_old_style_headers(sim_iso) + _run_dvdisaster("--debug", "-i", sim_iso, "--truncate=357520") + for sector in HMG_DISAMBIG_SECTORS: + _run_dvdisaster("--debug", "-i", sim_iso, + "--erase", str(sector)) + _run_golden_compare("scan_modulo_glitch4", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v"], + tmp_path, image_path=tmp_iso) + + def test_scan_with_rs01_file(self, tmp_path): + """Scan RS02 image with RS01 ecc file.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "34930,0,1") + _run_golden_compare("scan_with_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(sim_iso), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-s"], + tmp_path, image_path=sim_iso, + ignore_line=r'^Read position: 100') + + def test_scan_with_wrong_rs01_file(self, tmp_path): + """Scan RS02 image with non-matching RS01 ecc file.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + _run_dvdisaster("--debug", "-i{}".format(tmp_ecc), + "--byteset", "0,24,1") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "34930,0,1") + _run_golden_compare("scan_with_wrong_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(sim_iso), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-s"], + tmp_path, image_path=sim_iso) + + def test_scan_with_rs03_file(self, tmp_path): + """Scan RS02 image with RS03 ecc file.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "34930,0,1") + _run_golden_compare("scan_with_rs03_file", + ["--regtest", "--no-progress", + "-i{}".format(sim_iso), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-s"], + tmp_path, image_path=sim_iso) + + def test_scan_with_wrong_rs03_file(self, tmp_path): + """Scan RS02 image with non-matching RS03 ecc file.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + _run_dvdisaster("--debug", "-i{}".format(tmp_ecc), + "--byteset", "0,24,1") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "34930,0,1") + _run_golden_compare("scan_with_wrong_rs03_file", + ["--regtest", "--no-progress", + "-i{}".format(sim_iso), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-s"], + tmp_path, image_path=sim_iso) + + +# ══════════════════════════════════════════════════════════════════ +# Reading tests - linear (28) +# ══════════════════════════════════════════════════════════════════ + +class TestRS02ReadLinear(GoldenTestSuite): + codec = "RS02" + codec_prefix = "RS02" + master = "rs02-master.iso" + image_size = ISOSIZE + + tests = [ + GoldenTest("read_good", action="-r", new_image=True, + sim_cd=SimCD(source="master"), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_good_verbose", action="-r -v", new_image=True, + sim_cd=SimCD(source="master"), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_shorter", action="-r -v", new_image=True, + sim_cd=SimCD(source="master", + damage=[Truncate(REAL_ECCSIZE - 44)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_tao_tail", action="-r", new_image=True, + sim_cd=SimCD(source="master", + damage=[AppendFile(_FIXED_RANDOM_SEQ), + Erase("34932-34933")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_no_tao_tail", action="-r --dao", new_image=True, + sim_cd=SimCD(source="master", + damage=[Erase("34930-34931")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_bad_header", action="-r", new_image=True, + sim_cd=SimCD(source="master", + damage=[Byteset(30592, 1, 1)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_bad_headers", action="-r", new_image=True, + sim_cd=SimCD(source="master", + damage=[Byteset(30592, 1, 1), + Byteset(31488, 100, 1)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_missing_data_sectors", action="-r", new_image=True, + sim_cd=SimCD(source="master", + damage=[Erase("1000-1049"), Erase("21230"), + Erase("22450-22457")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_missing_crc_sectors", action="-r", new_image=True, + sim_cd=SimCD(source="master", + damage=[Erase("30020-30030"), + Erase("30034")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_missing_ecc_sectors", action="-r", new_image=True, + sim_cd=SimCD(source="master", + damage=[Erase("32020-32030"), + Erase("33034")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_data_bad_bytes", action="-r", new_image=True, + sim_cd=SimCD(source="master", + damage=[Byteset(0, 55, 12), + Byteset(1235, 50, 10), + Byteset(29999, 128, 98)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_crc_bad_byte", action="-r", new_image=True, + sim_cd=SimCD(source="master", + damage=[Byteset(30020, 50, 10)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("read_ecc_bad_byte", action="-r", new_image=True, + sim_cd=SimCD(source="master", + damage=[Byteset(33100, 50, 10)]), + extra_args=["--spinup-delay=0"]), + ] + + def _ensure_master(self): + return _ensure_master() + + def test_read_good_file(self, tmp_path): + """Read into existing and complete image file.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, sim_iso) + shutil.copy2(master_path, tmp_iso) + _run_golden_compare("read_good_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r"], + tmp_path, image_path=tmp_iso) + + def test_read_longer(self, tmp_path): + """Read image longer than expected.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, sim_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + pad_data = f.read() + with open(sim_iso, "ab") as f: + for _ in range(23): + f.write(pad_data) + _run_golden_compare("read_longer", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v"], + tmp_path, image_path=tmp_iso) + + def test_read_incompatible_ecc(self, tmp_path): + """Read image requiring a newer dvdisaster version.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, sim_iso) + for sector, offset, val in [ + (30000, 84, 220), (30000, 85, 65), (30000, 86, 15), + (30000, 88, 220), (30000, 89, 65), (30000, 90, 15), + (30000, 96, 106), (30000, 97, 230), (30000, 98, 75), + (30000, 99, 203), + ]: + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "{},{},{}".format(sector, offset, val)) + _run_golden_compare("read_incompatible_ecc", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r"], + tmp_path, image_path=tmp_iso, + ignore_line=r'^\* $') + + def test_read_bad_master(self, tmp_path): + """Read image with missing master header.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("-i{}".format(sim_iso), "--debug", "--erase", "30000") + _run_dvdisaster("-i{}".format(sim_iso), "--debug", "--erase", "32768") + _run_golden_compare("read_bad_master", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v"], + tmp_path, image_path=tmp_iso) + + def test_read_bad_master_exhaustive(self, tmp_path): + """Read image with missing master header, exhaustive search.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("-i{}".format(sim_iso), "--debug", "--erase", "30000") + _run_golden_compare("read_bad_master_exhaustive", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + "-a", "RS02"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_read_modulo_glitch(self, tmp_path): + """Read with header modulo glitch, post 0.79.5 style.""" + hmg_path = _ensure_hmg_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + _run_golden_compare("read_modulo_glitch", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(hmg_path), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_read_modulo_glitch2(self, tmp_path): + """Read with header modulo glitch, old style, complete image.""" + hmg_path = _ensure_hmg_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, sim_iso) + _apply_old_style_headers(sim_iso) + _run_golden_compare("read_modulo_glitch2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_read_modulo_glitch3(self, tmp_path): + """Read with header modulo glitch, old style, truncated.""" + hmg_path = _ensure_hmg_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, sim_iso) + _apply_old_style_headers(sim_iso) + _run_dvdisaster("--debug", "-i", sim_iso, "--truncate=357520") + _run_golden_compare("read_modulo_glitch3", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_read_modulo_glitch4(self, tmp_path): + """Read with header modulo glitch, old style, truncated, missing ref sectors.""" + hmg_path = _ensure_hmg_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, sim_iso) + _apply_old_style_headers(sim_iso) + _run_dvdisaster("--debug", "-i", sim_iso, "--truncate=357520") + for sector in HMG_DISAMBIG_SECTORS: + _run_dvdisaster("--debug", "-i", sim_iso, + "--erase", str(sector)) + _run_golden_compare("read_modulo_glitch4", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v"], + tmp_path, image_path=tmp_iso) + + def test_read_with_rs01_file(self, tmp_path): + """Read RS02 image with RS01 ecc file.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "34930,0,1") + _run_golden_compare("read_with_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r"], + tmp_path, image_path=tmp_iso) + + def test_read_with_wrong_rs01_file(self, tmp_path): + """Read RS02 image with non-matching RS01 ecc file.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + _run_dvdisaster("--debug", "-i{}".format(tmp_ecc), + "--byteset", "0,24,1") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "34930,0,1") + _run_golden_compare("read_with_wrong_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r"], + tmp_path, image_path=tmp_iso) + + def test_read_with_rs03_file(self, tmp_path): + """Read RS02 image with RS03 ecc file.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "34930,0,1") + _run_golden_compare("read_with_rs03_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r"], + tmp_path, image_path=tmp_iso) + + def test_read_with_wrong_rs03_file(self, tmp_path): + """Read RS02 image with non-matching RS03 ecc file.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + _run_dvdisaster("--debug", "-i{}".format(tmp_ecc), + "--byteset", "0,24,1") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "34930,0,1") + _run_golden_compare("read_with_wrong_rs03_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r"], + tmp_path, image_path=tmp_iso) + + def test_read_second_pass_with_crc_error(self, tmp_path): + """Re-reading medium with CRC error on second pass.""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, sim_iso) + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "15830,8,3") + shutil.copy2(master_path, tmp_iso) + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--erase", "15800-16199") + _run_golden_compare("read_second_pass_with_crc_error", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r"], + tmp_path, image_path=tmp_iso) + + # read_multipass_ecc_partial_success is in test_multipass_read.py + + +# ══════════════════════════════════════════════════════════════════ +# Reading tests - adaptive (24) +# ══════════════════════════════════════════════════════════════════ + +class TestRS02ReadAdaptive(GoldenTestSuite): + codec = "RS02" + codec_prefix = "RS02" + master = "rs02-master.iso" + image_size = ISOSIZE + + tests = [ + GoldenTest("adaptive_good", action="-r --adaptive-read", + new_image=True, sim_cd=SimCD(source="master"), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_good_verbose", action="-r -v --adaptive-read", + new_image=True, sim_cd=SimCD(source="master"), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_shorter", action="-r -v --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[Truncate(REAL_ECCSIZE - 44)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_tao_tail", action="-r --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[AppendFile(_FIXED_RANDOM_SEQ), + Erase("34932-34933")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_no_tao_tail", + action="-r --dao --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[Erase("34930-34931")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_bad_header", action="-r -v --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[Byteset(30592, 1, 1)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_bad_headers", action="-r --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[Byteset(30592, 1, 1), + Byteset(31488, 100, 1)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_missing_data_sectors", + action="-r --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[Erase("1000-1049"), Erase("21230"), + Erase("22450-22457")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_missing_crc_sectors", + action="-r --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[Erase("30020-30030"), + Erase("30034")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_missing_ecc_sectors", + action="-r --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[Erase("32020-32030"), + Erase("33034")]), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_data_bad_byte", + action="-r --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[Byteset(1235, 50, 10)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_crc_bad_byte", + action="-r --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[Byteset(30020, 50, 10)]), + extra_args=["--spinup-delay=0"]), + GoldenTest("adaptive_ecc_bad_byte", + action="-r --adaptive-read", + new_image=True, sim_cd=SimCD(source="master", + damage=[Byteset(33100, 50, 10)]), + extra_args=["--spinup-delay=0"]), + ] + + def _ensure_master(self): + return _ensure_master() + + def test_adaptive_good_file(self, tmp_path): + """Read into existing and complete image file (adaptive).""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, sim_iso) + shutil.copy2(master_path, tmp_iso) + _run_golden_compare("adaptive_good_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read"], + tmp_path, image_path=tmp_iso) + + def test_adaptive_longer(self, tmp_path): + """Read image longer than expected (adaptive).""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, sim_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + pad_data = f.read() + with open(sim_iso, "ab") as f: + for _ in range(23): + f.write(pad_data) + _run_golden_compare("adaptive_longer", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + "--adaptive-read"], + tmp_path, image_path=tmp_iso) + + def test_adaptive_incompatible_ecc(self, tmp_path): + """Read image requiring newer dvdisaster (adaptive).""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(master_path, sim_iso) + for sector, offset, val in [ + (30000, 84, 220), (30000, 85, 65), (30000, 86, 15), + (30000, 88, 220), (30000, 89, 65), (30000, 90, 15), + (30000, 96, 106), (30000, 97, 230), (30000, 98, 75), + (30000, 99, 203), + ]: + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--byteset", "{},{},{}".format(sector, offset, val)) + _run_golden_compare("adaptive_incompatible_ecc", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_adaptive_modulo_glitch(self, tmp_path): + """Read with header modulo glitch, post 0.79.5 (adaptive).""" + hmg_path = _ensure_hmg_master() + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + _run_golden_compare("adaptive_modulo_glitch", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(hmg_path), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + "--adaptive-read"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_adaptive_modulo_glitch2(self, tmp_path): + """Read with header modulo glitch, old style, complete (adaptive).""" + hmg_path = _ensure_hmg_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, sim_iso) + _apply_old_style_headers(sim_iso) + _run_golden_compare("adaptive_modulo_glitch2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + "--adaptive-read"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_adaptive_modulo_glitch3(self, tmp_path): + """Read with header modulo glitch, old style, truncated (adaptive).""" + hmg_path = _ensure_hmg_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, sim_iso) + _apply_old_style_headers(sim_iso) + _run_dvdisaster("--debug", "-i", sim_iso, "--truncate=357520") + _run_golden_compare("adaptive_modulo_glitch3", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + "--adaptive-read"], + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_adaptive_modulo_glitch4(self, tmp_path): + """Read with header modulo glitch, old style, truncated, missing ref (adaptive).""" + hmg_path = _ensure_hmg_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + shutil.copy2(hmg_path, sim_iso) + _apply_old_style_headers(sim_iso) + _run_dvdisaster("--debug", "-i", sim_iso, "--truncate=357520") + for sector in HMG_DISAMBIG_SECTORS: + _run_dvdisaster("--debug", "-i", sim_iso, + "--erase", str(sector)) + _run_golden_compare("adaptive_modulo_glitch4", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + "--adaptive-read"], + tmp_path, image_path=tmp_iso) + + def test_adaptive_with_rs01_file(self, tmp_path): + """Read RS02 image with RS01 ecc file (adaptive).""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + shutil.copy2(master_path, sim_iso) + _run_golden_compare("adaptive_with_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read"], + tmp_path, image_path=tmp_iso) + + def test_adaptive_with_wrong_rs01_file(self, tmp_path): + """Read RS02 image with non-matching RS01 ecc file (adaptive).""" + master_path = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs02-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs02-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + _run_dvdisaster("--debug", "-i{}".format(tmp_ecc), + "--byteset", "0,24,1") + shutil.copy2(master_path, sim_iso) + _run_golden_compare("adaptive_with_wrong_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-e{}".format(tmp_ecc), + "--debug", + "--sim-cd={}".format(sim_iso), + "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read"], + tmp_path, image_path=tmp_iso) + + # Note: bash tests read_with_rs03_file and read_with_wrong_rs03_file + # at lines 2134-2153 of rs02.bash are linear reads (-r without + # --adaptive-read), already covered by TestRS02ReadLinear. diff --git a/tests/test_rs03_recognize.py b/tests/test_rs03_recognize.py new file mode 100644 index 00000000..4725d67a --- /dev/null +++ b/tests/test_rs03_recognize.py @@ -0,0 +1,159 @@ +""" +Tests for RS03 recognition robustness. + +These tests verify that RS03 ECC data can be found even when the image +sector count doesn't match the expected medium size. This covers: + +- BD-RE read-back: image padded with extra sectors (upstream #97) +- NODM without flag: image created with --no-bdr-defect-management + but recognized without the flag (upstream #69) + +The core fix is in src/rs03-recognize.c: RS03RecognizeImage() now tries +all known medium sizes as candidates instead of guessing a single one. +""" + +import os + +import pytest + +from conftest import ( + augment_image_rs03, + create_random_image, + erase_sectors, + run_dvdisaster, + scan_image, +) + +# Small image size for fast tests (in 2K sectors) +IMAGE_SECTORS = 21000 +# RS03 augmented size matching the regtest default +ECC_SIZE = 25000 + + +class TestBDREReadBackMismatch: + """Issue #97: RS03 ECC not recognized after BD-RE read-back. + + Scenario: Image augmented at ECC_SIZE (25000 sectors), but when + read back from a BD-RE disc, the image has extra trailing sectors + (the drive returns the full formatted capacity). The recognize path + must try multiple candidate layer sizes to find the ECC data. + """ + + def test_padded_image_recognized(self, dvdisaster_bin, work_dir): + """RS03 data should be found in an image padded with extra sectors.""" + image = str(work_dir / "test.iso") + scan_out = str(work_dir / "scan.iso") + + # Create and augment image + create_random_image(dvdisaster_bin, image, IMAGE_SECTORS) + augment_image_rs03(dvdisaster_bin, image, medium_size=ECC_SIZE) + + # Verify augmentation produced a reasonable image + # (RS03 layout rounding means size may not be exactly ECC_SIZE*2048) + original_size = os.path.getsize(image) + assert original_size > IMAGE_SECTORS * 2048 + + # Pad with 5000 extra zero sectors (simulates BD-RE read-back) + padding_sectors = 5000 + with open(image, "ab") as f: + f.write(b"\x00" * (padding_sectors * 2048)) + + padded_size = os.path.getsize(image) + assert padded_size == original_size + padding_sectors * 2048 + + # Scan the padded image — should still find RS03 data + output = scan_image( + dvdisaster_bin, scan_out, sim_cd=image + ) + + assert "RS03" in output, ( + f"RS03 not found in padded image scan output:\n{output}" + ) + # Should not report "no RS03 data found" + assert "no RS03 data found" not in output.lower(), ( + f"RS03 recognition failed on padded image:\n{output}" + ) + + def test_heavily_padded_image(self, dvdisaster_bin, work_dir): + """RS03 data should be found even with significant padding.""" + image = str(work_dir / "test.iso") + scan_out = str(work_dir / "scan.iso") + + create_random_image(dvdisaster_bin, image, IMAGE_SECTORS) + augment_image_rs03(dvdisaster_bin, image, medium_size=ECC_SIZE) + + # Pad to double size + with open(image, "ab") as f: + f.write(b"\x00" * (ECC_SIZE * 2048)) + + output = scan_image( + dvdisaster_bin, scan_out, sim_cd=image + ) + + assert "RS03" in output, ( + f"RS03 not found in heavily padded image:\n{output}" + ) + + +class TestHeaderlessRecognition: + """Issue #69/#97: RS03 ECC found via candidate search when header is missing. + + When the ECC header is erased or unreadable, RS03RecognizeImage() must + fall back to the multi-candidate layer size search. This tests that the + exhaustive search finds the ECC data even when the header is gone. + + Note: We use small custom -n sizes rather than BDNODM/BD sizes because + real BD sizes (12M+ sectors) would create ~24GB images, too large for CI. + The candidate search mechanism is the same regardless of size. + """ + + def test_headerless_image_recognized(self, dvdisaster_bin, work_dir): + """RS03 data should be found even when the ECC header is erased.""" + image = str(work_dir / "test.iso") + scan_out = str(work_dir / "scan.iso") + + # Create and augment image at a custom size + create_random_image(dvdisaster_bin, image, IMAGE_SECTORS) + augment_image_rs03(dvdisaster_bin, image, medium_size=ECC_SIZE) + + # Erase the ECC header sector to force the candidate search path + erase_sectors(dvdisaster_bin, image, str(IMAGE_SECTORS)) + + # Scan — should find RS03 data via exhaustive candidate search + output = scan_image( + dvdisaster_bin, + scan_out, + sim_cd=image, + extra_args=["-v"], + ) + + # The multi-candidate search should rediscover the format + assert "no RS03 data found" not in output.lower(), ( + f"RS03 recognition failed with erased header:\n{output}" + ) + + def test_headerless_padded_image_recognized(self, dvdisaster_bin, work_dir): + """RS03 data found when header is erased AND image is padded.""" + image = str(work_dir / "test.iso") + scan_out = str(work_dir / "scan.iso") + + create_random_image(dvdisaster_bin, image, IMAGE_SECTORS) + augment_image_rs03(dvdisaster_bin, image, medium_size=ECC_SIZE) + + # Erase the ECC header + erase_sectors(dvdisaster_bin, image, str(IMAGE_SECTORS)) + + # Pad with extra sectors (simulates BD-RE read-back with missing header) + with open(image, "ab") as f: + f.write(b"\x00" * (3000 * 2048)) + + output = scan_image( + dvdisaster_bin, + scan_out, + sim_cd=image, + extra_args=["-v"], + ) + + assert "no RS03 data found" not in output.lower(), ( + f"RS03 recognition failed with erased header + padding:\n{output}" + ) diff --git a/tests/test_rs03f.py b/tests/test_rs03f.py new file mode 100644 index 00000000..6be4c25a --- /dev/null +++ b/tests/test_rs03f.py @@ -0,0 +1,2081 @@ +""" +RS03f regression tests -- from regtest/rs03f.bash. + +RS03f is the file-based ECC mode: ECC data is stored in a separate .ecc file +(like RS01), but uses the RS03 codec with configurable redundancy roots. + +Tests are grouped into: + - TestRS03fVerify: 39 verify tests + - TestRS03fCreate: 14 creation tests + - TestRS03fRepair: 25 repair/fix tests + - TestRS03fScan: 18 scanning tests + - TestRS03fReadLinear: 17 linear reading tests + - TestRS03fReadAdaptive: 1 adaptive reading test +""" + +import difflib +import os +import re +import shutil +import sys + +import pytest + +# POSIX chmod 0o000/0o400 is not enforced on NTFS, so the Windows dvdisaster +# build cannot trigger "permission denied" errors for locally-created files. +_SKIP_CHMOD_WIN = pytest.mark.skipif( + sys.platform == "win32", + reason="POSIX chmod semantics not honored on NTFS", +) + +from framework import ( + Byteset, + Erase, + GoldenTest, + GoldenTestSuite, + PadSectors, + Truncate, + _ISODIR, + _TMPDIR, + _find_binary, + _md5_file, + _run_dvdisaster, + _apply_damage, + clean_output, + parse_golden_file, + resolve_golden_path, +) + +_PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +_DATABASE = os.path.join(_PROJECT_ROOT, "regtest", "database") +_FIXED_RANDOM_SEQ = os.path.join(_PROJECT_ROOT, "regtest", "fixed-random-sequence") + +# Constants matching the bash variables +ISOSIZE = 21000 +SETVERSION = "0.80" +REDUNDANCY_ROOTS = 20 +REDUNDANCY = "{}r".format(REDUNDANCY_ROOTS) + + +# --------------------------------------------------------------------------- +# Session fixture: create plus56 setup images (shared across all tests) +# --------------------------------------------------------------------------- + +@pytest.fixture(scope="session") +def plus56_images(): + """Create rs03f-plus56_bytes.iso and .ecc in ISODIR if they don't exist. + + These mirror the bash preamble that creates ISO_PLUS56 and ECC_PLUS56. + Note: RS03f uses bytes from the fixed-random-sequence file (not zeros). + """ + os.makedirs(_ISODIR, exist_ok=True) + master_iso = os.path.join(_ISODIR, "rs03f-master.iso") + iso_plus56 = os.path.join(_ISODIR, "rs03f-plus56_bytes.iso") + ecc_plus56 = os.path.join(_ISODIR, "rs03f-plus56_bytes.ecc") + + # Ensure master exists + if not os.path.isfile(master_iso): + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(master_iso), + "--random-image", str(ISOSIZE), + check=True, + ) + + # Create plus56 ISO: master + 56 bytes from fixed-random-sequence + if not os.path.isfile(iso_plus56): + shutil.copy2(master_iso, iso_plus56) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(56) + with open(iso_plus56, "ab") as f: + f.write(data) + + # Create plus56 ECC + if not os.path.isfile(ecc_plus56): + # Ensure master ECC exists too + master_ecc = os.path.join(_ISODIR, "rs03f-master.ecc") + if not os.path.isfile(master_ecc): + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_iso), + "-e{}".format(master_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c", + check=True, + ) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(iso_plus56), + "-e{}".format(ecc_plus56), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c", + check=True, + ) + + return iso_plus56, ecc_plus56 + + +# --------------------------------------------------------------------------- +# Common damage patterns (reused by multiple tests) +# --------------------------------------------------------------------------- + +_DAMAGE_DSM1 = [ + Erase("3030"), + Byteset(3030, 353, 49), + Erase("4400"), + Byteset(4400, 353, 53), + Erase("4411"), + Byteset(4411, 353, 53), +] + +_DAMAGE_DSM2 = [ + Erase("3030"), + Byteset(3030, 416, 55), + Byteset(3030, 556, 32), + Byteset(3030, 557, 50), + Erase("4400"), + Byteset(4400, 416, 53), + Byteset(4400, 556, 32), + Byteset(4400, 557, 50), + Erase("4411"), + Byteset(4411, 416, 53), + Byteset(4411, 556, 32), + Byteset(4411, 557, 50), +] + + +# --------------------------------------------------------------------------- +# Helper: run a golden-file test with prepared image/ecc paths +# --------------------------------------------------------------------------- + +def _run_golden_compare(test_name, cmd_args, tmp_path, + image_path=None, ecc_path=None, + ignore_line_re=None): + """Run dvdisaster, clean output, compare against golden file. + + Args: + test_name: name matching the golden file (e.g. 'good') + cmd_args: list of CLI arguments + tmp_path: pytest tmp_path for cleaning + image_path: path to image file for MD5 check (or None) + ecc_path: path to ecc file for MD5 check (or None) + ignore_line_re: regex pattern for lines to strip from output + """ + golden_base = os.path.join(_DATABASE, "RS03f_{}".format(test_name)) + golden_path = resolve_golden_path(golden_base) + if not os.path.isfile(golden_path): + pytest.skip("Golden file not found: {}".format(golden_path)) + + expected_image_md5, expected_ecc_md5, expected_output = parse_golden_file(golden_path) + + _, raw_output = _run_dvdisaster(*cmd_args) + + work_dir = str(tmp_path) + cleaned = clean_output( + raw_output, + tmp_dirs=[work_dir, _TMPDIR, _ISODIR], + strip_header=True, + ) + + # Filter ignored lines + if ignore_line_re: + lines = cleaned.split("\n") + lines = [l for l in lines if not re.match(ignore_line_re, l)] + cleaned = "\n".join(lines) + + if cleaned != expected_output: + diff = difflib.unified_diff( + expected_output.splitlines(keepends=True), + cleaned.splitlines(keepends=True), + fromfile="expected (golden)", + tofile="actual (cleaned)", + ) + diff_text = "".join(diff) + assert cleaned == expected_output, ( + "Output mismatch for test '{}':\n{}".format(test_name, diff_text) + ) + + if expected_image_md5 is not None and image_path and os.path.isfile(image_path): + actual_md5 = _md5_file(image_path) + assert actual_md5 == expected_image_md5, ( + "Image MD5 mismatch for '{}': expected {}, got {}".format( + test_name, expected_image_md5, actual_md5) + ) + + if expected_ecc_md5 is not None and ecc_path and os.path.isfile(ecc_path): + actual_md5 = _md5_file(ecc_path) + assert actual_md5 == expected_ecc_md5, ( + "ECC MD5 mismatch for '{}': expected {}, got {}".format( + test_name, expected_ecc_md5, actual_md5) + ) + + +def _ensure_master(): + """Ensure the RS03f master image exists and return its path.""" + os.makedirs(_ISODIR, exist_ok=True) + path = os.path.join(_ISODIR, "rs03f-master.iso") + if not os.path.isfile(path): + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(path), + "--random-image", str(ISOSIZE), + check=True, + ) + return path + + +def _ensure_master_ecc(): + """Ensure the RS03f master ECC exists and return its path.""" + master_iso = _ensure_master() + path = os.path.join(_ISODIR, "rs03f-master.ecc") + if not os.path.isfile(path): + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_iso), + "-e{}".format(path), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c", + check=True, + ) + return path + + +# --------------------------------------------------------------------------- +# Test Suite: Verify +# --------------------------------------------------------------------------- + +class TestRS03fVerify(GoldenTestSuite): + codec = "RS03" + codec_prefix = "RS03f" + master = "rs03f-master.iso" + master_ecc = "rs03f-master.ecc" + image_size = ISOSIZE + redundancy = REDUNDANCY + + def _ensure_master(self): + """Override: RS03f master image creation.""" + return _ensure_master() + + def _ensure_master_ecc(self): + """Override: RS03f needs -mRS03 -o file flags.""" + return _ensure_master_ecc() + + # ------------------------------------------------------------------ + # Declarative tests (auto-parametrized via test_golden) + # ------------------------------------------------------------------ + tests = [ + # 1. good + GoldenTest("good", action="-t", use_master=True, ecc="master_ecc"), + # 2. good_quick + GoldenTest("good_quick", action="-tq", use_master=True, ecc="master_ecc"), + # 3. no_image (bash uses $MASTERECC, not no.ecc) + GoldenTest("no_image", action="-t", image="no.iso", ecc="master_ecc"), + # 4. image_truncated_by5 + GoldenTest("image_truncated_by5", action="-t", + damage=[Truncate(ISOSIZE - 5)], ecc="master_ecc"), + # 5. 17_extra_sectors (bash uses /dev/zero) + GoldenTest("17_extra_sectors", action="-t", + damage=[PadSectors(17)], ecc="master_ecc"), + # 6. missing_sectors + GoldenTest("missing_sectors", action="-t", + damage=[Erase("500-524")], ecc="master_ecc"), + # 7. crc_errors + GoldenTest("crc_errors", action="-t", + damage=[Byteset(670, 50, 50), Byteset(770, 50, 50), + Byteset(771, 50, 50), Byteset(772, 50, 50)], + ecc="master_ecc"), + # 8. mixed_errors + GoldenTest("mixed_errors", action="-t", + damage=[Erase("500-524"), Byteset(670, 50, 50), + Erase("699"), Byteset(770, 50, 50), + Byteset(771, 50, 50), Byteset(772, 50, 50), + Erase("978-1001")], + ecc="master_ecc"), + # 9. crc_error_in_fingerprint + GoldenTest("crc_error_in_fingerprint", action="-t", + damage=[Byteset(16, 450, 17)], ecc="master_ecc"), + # 10. fingerprint_unreadable + GoldenTest("fingerprint_unreadable", action="-t", + damage=[Erase("16")], ecc="master_ecc"), + # 11. uncorrectable_dsm_in_image + GoldenTest("uncorrectable_dsm_in_image", action="-t", + damage=_DAMAGE_DSM1, ecc="master_ecc"), + # 12. uncorrectable_dsm_in_image_verbose + GoldenTest("uncorrectable_dsm_in_image_verbose", action="-t -v", + damage=_DAMAGE_DSM1, ecc="master_ecc"), + # 13. uncorrectable_dsm_in_image2 + GoldenTest("uncorrectable_dsm_in_image2", action="-t", + damage=_DAMAGE_DSM2, ecc="master_ecc"), + # 14. uncorrectable_dsm_in_image2_verbose + GoldenTest("uncorrectable_dsm_in_image2_verbose", action="-t -v", + damage=_DAMAGE_DSM2, ecc="master_ecc"), + ] + + # ------------------------------------------------------------------ + # Manual tests: plus56 and related (need fresh ecc creation) + # ------------------------------------------------------------------ + + def test_plus56_bytes(self, tmp_path): + """Verify image with 56 extra random bytes and its own ecc.""" + master = self._ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master, tmp_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(56) + with open(tmp_iso, "ab") as f: + f.write(data) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c", + check=True, + ) + + _run_golden_compare( + "plus56_bytes", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ) + + def test_no_image_plus56_bytes(self, tmp_path): + """No image; ecc for image with 56 extra bytes.""" + master = self._ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master, tmp_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(56) + with open(tmp_iso, "ab") as f: + f.write(data) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c", + check=True, + ) + + no_iso = os.path.join(_ISODIR, "no.iso") + _run_golden_compare( + "no_image_plus56_bytes", + ["--regtest", "--no-progress", + "-i{}".format(no_iso), "-e{}".format(tmp_ecc), "-t"], + tmp_path, ecc_path=tmp_ecc, + ) + + def test_special_padding(self, tmp_path): + """Image with special padding situation (20124 sectors, divisible by layer size).""" + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + _run_dvdisaster( + "--debug", + "-i{}".format(tmp_iso), + "--random-image", "20124", + check=True, + ) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c", + check=True, + ) + + _run_golden_compare( + "special_padding", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), "-v", "-t"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ) + + def test_special_padding_plus56(self, tmp_path): + """Image with special padding plus 56 bytes (20123 sectors + 56 bytes).""" + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + _run_dvdisaster( + "--debug", + "-i{}".format(tmp_iso), + "--random-image", "20123", + check=True, + ) + + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(56) + with open(tmp_iso, "ab") as f: + f.write(data) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c", + check=True, + ) + + _run_golden_compare( + "special_padding_plus56", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), "-v", "-t"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ) + + def test_normal_image_ecc_plus56_bytes(self, tmp_path): + """Normal master image verified against ecc from plus56 image.""" + master = self._ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master, tmp_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(56) + with open(tmp_iso, "ab") as f: + f.write(data) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c", + check=True, + ) + + _run_golden_compare( + "normal_image_ecc_plus56_bytes", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_image_plus56_normal_ecc(self, tmp_path): + """Image with 56 extra bytes verified against normal master ecc.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + + shutil.copy2(master, tmp_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(56) + with open(tmp_iso, "ab") as f: + f.write(data) + + _run_golden_compare( + "image_plus56_normal_ecc", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), "-t"], + tmp_path, image_path=tmp_iso, ecc_path=master_ecc, + ) + + def test_few_bytes_shorter(self, tmp_path): + """Image a few bytes shorter than expected; both not multiple of 2048.""" + master = self._ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + long_iso = os.path.join(str(tmp_path), "rs03f-plus390-bytes.iso") + + # Create +56 image + shutil.copy2(master, tmp_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + rnd = f.read(390) + with open(tmp_iso, "ab") as f: + f.write(rnd[:56]) + + # Create +390 image and its ecc + shutil.copy2(master, long_iso) + with open(long_iso, "ab") as f: + f.write(rnd[:390]) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(long_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c", + check=True, + ) + + _run_golden_compare( + "few_bytes_shorter", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ) + + def test_few_bytes_longer(self, tmp_path): + """Image a few bytes longer than expected; both not multiple of 2048.""" + master = self._ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + short_iso = os.path.join(str(tmp_path), "rs03f-plus56-bytes.iso") + + with open(_FIXED_RANDOM_SEQ, "rb") as f: + rnd = f.read(390) + + # Create +56 image and its ecc + shutil.copy2(master, short_iso) + with open(short_iso, "ab") as f: + f.write(rnd[:56]) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(short_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c", + check=True, + ) + + # Create +390 image + shutil.copy2(master, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(rnd[:390]) + + _run_golden_compare( + "few_bytes_longer", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ) + + def test_few_bytes_shorter2(self, tmp_path): + """Image few bytes shorter than multiple of 2048.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + truncated_size = 2048 * ISOSIZE - 104 + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + + with open(master, "rb") as src, open(tmp_iso, "wb") as dst: + dst.write(src.read(truncated_size)) + + _run_golden_compare( + "few_bytes_shorter2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), "-t"], + tmp_path, image_path=tmp_iso, ecc_path=master_ecc, + ) + + def test_one_extra_sector(self, tmp_path): + """Image with 1 extra sector (random data from fixed-random-sequence).""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + + shutil.copy2(master, tmp_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(2048) + with open(tmp_iso, "ab") as f: + f.write(data) + + _run_golden_compare( + "one_extra_sector", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), "-t"], + tmp_path, image_path=tmp_iso, ecc_path=master_ecc, + ) + + # ------------------------------------------------------------------ + # ECC file manipulation tests + # ------------------------------------------------------------------ + + def test_missing_ecc_header(self, tmp_path): + """Ecc header is missing.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Erase("0")]) + + _run_golden_compare( + "missing_ecc_header", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t", "-v"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_missing_ecc_header_and_crc(self, tmp_path): + """Ecc header and some CRC blocks are missing.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Erase("0-16")]) + + _run_golden_compare( + "missing_ecc_header_and_crc", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t", "-v"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_missing_ecc_header_and_defective_crc(self, tmp_path): + """Ecc header missing, first CRC block defective.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Erase("0"), Byteset(2, 50, 107)]) + + _run_golden_compare( + "missing_ecc_header_and_defective_crc", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t", "-v"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_ecc_header_crc_error(self, tmp_path): + """Checksum error in ecc header.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(0, 32, 107)]) + + _run_golden_compare( + "ecc_header_crc_error", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t", "-v"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_ecc_file_truncated(self, tmp_path): + """Truncated ecc file (1788 sectors).""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + # dd if=$MASTERECC of=$TMPECC bs=2048 count=1788 + with open(master_ecc, "rb") as src, open(tmp_ecc, "wb") as dst: + dst.write(src.read(2048 * 1788)) + + _run_golden_compare( + "ecc_file_truncated", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_ecc_file_plus_garbage(self, tmp_path): + """Ecc file with trailing garbage (3980 random bytes).""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master_ecc, tmp_ecc) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(3980) + with open(tmp_ecc, "ab") as f: + f.write(data) + + _run_golden_compare( + "ecc_file_plus_garbage", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_ecc_file_cookieless_crc(self, tmp_path): + """Ecc file with cookie-less CRC sector.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(2, 1024, 70)]) + + _run_golden_compare( + "ecc_file_cookieless_crc", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_ecc_file_defective_crc(self, tmp_path): + """Ecc file with byte errors in CRC sectors.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(4, 101, 70), Byteset(5, 908, 23)]) + + _run_golden_compare( + "ecc_file_defective_crc", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_ecc_file_defective_ecc(self, tmp_path): + """Ecc file with byte error in ECC portion.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(1040, 101, 70)]) + + _run_golden_compare( + "ecc_file_defective_ecc", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_ecc_file_missing_crc(self, tmp_path): + """Ecc file with missing CRC sectors.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Erase("10-19")]) + + _run_golden_compare( + "ecc_file_missing_crc", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_ecc_file_missing_ecc(self, tmp_path): + """Ecc file with missing ECC sectors.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Erase("1000-1014")]) + + _run_golden_compare( + "ecc_file_missing_ecc", + ["--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ) + + def test_ecc_file_missing_crc2(self, tmp_path): + """Ecc file with missing CRC sector and CRC error in data.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Byteset(91, 10, 10)]) + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Erase("2")]) + + _run_golden_compare( + "ecc_file_missing_crc2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ) + + def test_ecc_file_missing_crc3(self, tmp_path): + """Ecc file with corrupted CRC sector and CRC error in data.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Byteset(91, 10, 10)]) + + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(2, 123, 97)]) + + _run_golden_compare( + "ecc_file_missing_crc3", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ) + + def test_crc_section_with_uncorrectable_dsm(self, tmp_path): + """CRC section with uncorrectable dead sector markers.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master, tmp_iso) + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Erase("10"), Erase("15"), Erase("16")]) + + _run_golden_compare( + "crc_section_with_uncorrectable_dsm", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ) + + def test_ecc_section_with_uncorrectable_dsm(self, tmp_path): + """ECC section with uncorrectable dead sector markers.""" + master = self._ensure_master() + master_ecc = self._ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + + shutil.copy2(master, tmp_iso) + shutil.copy2(master_ecc, tmp_ecc) + _apply_damage(tmp_ecc, [Erase("200"), Erase("240"), Erase("241")]) + + _run_golden_compare( + "ecc_section_with_uncorrectable_dsm", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), "-t"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ) + + +# --------------------------------------------------------------------------- +# Test Suite: Creation +# --------------------------------------------------------------------------- + +# Common ignore pattern for creation tests: filter performance stats and +# method registration lines that vary between runs. +_CREATE_IGNORE_RE = r"^Avg performance|^Creating the error correction file with Method RS03" + + +class TestRS03fCreate(GoldenTestSuite): + codec = "RS03" + codec_prefix = "RS03f" + master = "rs03f-master.iso" + master_ecc = "rs03f-master.ecc" + image_size = ISOSIZE + redundancy = REDUNDANCY + tests = [] + + def _ensure_master(self): + return _ensure_master() + + def _ensure_master_ecc(self): + return _ensure_master_ecc() + + # 1. ecc_create -- basic ecc file creation + def test_ecc_create(self, tmp_path): + """Basic ecc file creation.""" + master = self._ensure_master() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + _run_golden_compare( + "ecc_create", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-mRS03", "-n{}".format(REDUNDANCY), "-o", "file", "-c"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + + # 2. ecc_missing_image -- missing image + def test_ecc_missing_image(self, tmp_path): + """ECC creation with missing image.""" + no_file = os.path.join(_ISODIR, "none.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + _run_golden_compare( + "ecc_missing_image", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "-i{}".format(no_file), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c"], + tmp_path, ecc_path=tmp_ecc, + ) + + # 3. ecc_existing_file -- create over existing ecc with different redundancy + def test_ecc_existing_file(self, tmp_path): + """ECC creation with already existing ecc file (different redundancy).""" + master = self._ensure_master() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + # First create ecc with higher redundancy (REDUNDANCY_ROOTS + 10 = 30r) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-mRS03", "-n{}r".format(REDUNDANCY_ROOTS + 10), + "-o", "file", "-c", + ) + # Then create again with original redundancy + _run_golden_compare( + "ecc_existing_file", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + + # 4. ecc_no_read_perm -- no read permission on image + @_SKIP_CHMOD_WIN + def test_ecc_no_read_perm(self, tmp_path): + """ECC creation with no read permission on image.""" + master = self._ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, tmp_iso) + os.chmod(tmp_iso, 0o000) + try: + _run_golden_compare( + "ecc_no_read_perm", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ) + finally: + os.chmod(tmp_iso, 0o644) + + # 5. ecc_no_write_perm -- no write permission on ecc file + @_SKIP_CHMOD_WIN + def test_ecc_no_write_perm(self, tmp_path): + """ECC creation with no write permission on ecc file.""" + master = self._ensure_master() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + # Create ecc file with no permissions + with open(tmp_ecc, "w"): + pass + os.chmod(tmp_ecc, 0o000) + try: + _run_golden_compare( + "ecc_no_write_perm", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c"], + tmp_path, image_path=master, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + finally: + if os.path.exists(tmp_ecc): + os.chmod(tmp_ecc, 0o644) + + # 6. ecc_create_plus56 -- image with 56 extra bytes + def test_ecc_create_plus56(self, tmp_path): + """ECC creation for image with 56 additional bytes.""" + master = self._ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, tmp_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as f: + data = f.read(56) + with open(tmp_iso, "ab") as f: + f.write(data) + _run_golden_compare( + "ecc_create_plus56", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + + # 7. ecc_missing_sectors -- image with erased sectors 500-524 + def test_ecc_missing_sectors(self, tmp_path): + """ECC creation from image with missing sectors.""" + master = self._ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, tmp_iso) + _run_dvdisaster("--debug", "-i", tmp_iso, "--erase", "500-524") + _run_golden_compare( + "ecc_missing_sectors", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-n", REDUNDANCY, "-o", "file", "-c"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + + # 8. ecc_create_after_read -- read + create in one call + def test_ecc_create_after_read(self, tmp_path): + """Read image and create ecc in one call.""" + master = self._ensure_master() + sim_iso = os.path.join(str(tmp_path), "rs03f-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + _run_golden_compare( + "ecc_create_after_read", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-r", "-c", "-mRS03", "-o", "file", + "-n{}".format(REDUNDANCY), "-v"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + + # 9. ecc_recreate_after_read_rs01 -- read with RS01 ecc, create RS03f ecc + def test_ecc_recreate_after_read_rs01(self, tmp_path): + """Read image with RS01 ECC and create RS03f ECC.""" + master = self._ensure_master() + sim_iso = os.path.join(str(tmp_path), "rs03f-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + # Create RS01 ecc (8r) for the sim image + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e{}".format(tmp_ecc), + "-c", "-n", "8r", + ) + _run_golden_compare( + "ecc_recreate_after_read_rs01", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-r", "-c", "-mRS03", "-o", "file", + "-n{}".format(REDUNDANCY), "-v"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + + # 10. ecc_recreate_after_read_rs02 -- read RS02-augmented image, create RS03f ecc + def test_ecc_recreate_after_read_rs02(self, tmp_path): + """Read image with RS02 ECC and create RS03f ECC.""" + master = self._ensure_master() + sim_iso = os.path.join(str(tmp_path), "rs03f-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + # Augment with RS02 (n = ISOSIZE + 3000 = 24000) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS02", + "-c", "-n{}".format(ISOSIZE + 3000), + ) + _run_golden_compare( + "ecc_recreate_after_read_rs02", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-r", "-c", "-mRS03", "-o", "file", + "-n{}".format(REDUNDANCY), "-v"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + + # 11. ecc_recreate_after_read_rs03i -- read RS03 image-augmented, create RS03f ecc + def test_ecc_recreate_after_read_rs03i(self, tmp_path): + """Read image with RS03i ECC and create RS03f ECC.""" + master = self._ensure_master() + sim_iso = os.path.join(str(tmp_path), "rs03f-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + # Augment with RS03 image mode (n = ISOSIZE + 3000 = 24000) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS03", + "-c", "-n{}".format(ISOSIZE + 3000), + ) + _run_golden_compare( + "ecc_recreate_after_read_rs03i", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-r", "-c", "-mRS03", "-o", "file", + "-n{}".format(REDUNDANCY), "-v"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + + # 12. ecc_recreate_after_read_rs03f -- read with RS03f ecc (9r), create new (20r) + def test_ecc_recreate_after_read_rs03f(self, tmp_path): + """Read image with RS03f ECC and create new RS03f ECC.""" + master = self._ensure_master() + sim_iso = os.path.join(str(tmp_path), "rs03f-sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + # Create RS03f ecc with 9r redundancy + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-o", "file", "-c", "-n", "9r", + ) + _run_golden_compare( + "ecc_recreate_after_read_rs03f", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-r", "-c", "-mRS03", "-o", "file", + "-n{}".format(REDUNDANCY), "-v"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + + # 13. ecc_create_after_partial_read -- complete partial image then create ecc + def test_ecc_create_after_partial_read(self, tmp_path): + """Create ecc after completing partial image in reading pass.""" + master = self._ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, tmp_iso) + # Erase sectors 1000-1500 + _run_dvdisaster("--debug", "-i{}".format(tmp_iso), + "--erase", "1000-1500") + _run_golden_compare( + "ecc_create_after_partial_read", + ["--regtest", "--no-progress", + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(master), "--fixed-speed-values", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-r", "-c", "-mRS03", "-o", "file", + "-n{}".format(REDUNDANCY), "-v"], + tmp_path, image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=_CREATE_IGNORE_RE, + ) + + +# --------------------------------------------------------------------------- +# Test Suite: Repair +# --------------------------------------------------------------------------- + +class TestRS03fRepair(GoldenTestSuite): + codec = "RS03" + codec_prefix = "RS03f" + master = "rs03f-master.iso" + master_ecc = "rs03f-master.ecc" + image_size = ISOSIZE + redundancy = REDUNDANCY + + def _ensure_master(self): + return _ensure_master() + + def _ensure_master_ecc(self): + return _ensure_master_ecc() + + # ------------------------------------------------------------------ + # Declarative tests + # ------------------------------------------------------------------ + tests = [ + # fix_good: fix good image (no damage) + GoldenTest("fix_good", action="-f", ecc="master_ecc"), + # fix_missing_data_sectors: erase sectors in image + GoldenTest("fix_missing_data_sectors", action="-f", + damage=[Erase("900-924"), Erase("73")], + ecc="master_ecc"), + # fix_missing_crc_sectors: erase CRC sectors in ecc + GoldenTest("fix_missing_crc_sectors", action="-f", + ecc="master_ecc", + ecc_damage=[Erase("5-9")]), + # fix_missing_ecc_sectors: erase ECC sectors in ecc + GoldenTest("fix_missing_ecc_sectors", action="-f", + ecc="master_ecc", + ecc_damage=[Erase("115-119")]), + # fix_border_cases_erasures: erase sectors across layers in both image and ecc + GoldenTest("fix_border_cases_erasures", action="-f", + damage=[ + Erase("0"), Erase("90"), Erase("180"), Erase("20970"), + Erase("89"), Erase("179"), Erase("269"), Erase("20999"), + ], + ecc="master_ecc", + ecc_damage=[ + Erase("2"), Erase("92"), Erase("182"), Erase("1802"), + Erase("91"), Erase("181"), Erase("271"), Erase("1891"), + ]), + # fix_border_cases_crc_errors: byteset across layers in both image and ecc + GoldenTest("fix_border_cases_crc_errors", action="-f", + damage=[ + Byteset(0, 0, 1), Byteset(90, 0, 0), Byteset(180, 0, 0), + Byteset(20970, 0, 0), + Byteset(89, 0, 0), Byteset(179, 0, 0), Byteset(269, 0, 0), + Byteset(20999, 0, 0), + ], + ecc="master_ecc", + ecc_damage=[ + Byteset(2, 0, 0), Byteset(92, 0, 0), Byteset(182, 0, 0), + Byteset(1802, 0, 0), + Byteset(91, 0, 0), Byteset(181, 0, 0), Byteset(271, 0, 0), + Byteset(1891, 0, 0), + ]), + # fix_no_read_perm: no read permission on image + GoldenTest("fix_no_read_perm", action="-f", + chmod_image=0o000, ecc="master_ecc"), + # fix_no_write_perm: no write permission on image + GoldenTest("fix_no_write_perm", action="-f", + chmod_image=0o400, ecc="master_ecc"), + # fix_additional_sector: image with 1 extra sector (TAO case) + GoldenTest("fix_additional_sector", action="-f", + damage=[PadSectors(1)], ecc="master_ecc"), + # fix_plus17: image with 17 additional sectors + GoldenTest("fix_plus17", action="-f", + damage=[PadSectors(17)], ecc="master_ecc"), + # fix_plus17_truncate: with --truncate + GoldenTest("fix_plus17_truncate", action="-f --truncate", + damage=[PadSectors(17)], ecc="master_ecc"), + # fix_truncated: truncated image + GoldenTest("fix_truncated", action="-f", + damage=[Truncate(ISOSIZE - 269)], ecc="master_ecc"), + # fix_ecc_file_truncated: truncated ecc file (uses master image directly) + GoldenTest("fix_ecc_file_truncated", action="-f", + use_master=True, + ecc="master_ecc", + ecc_damage=[Truncate(1788)]), + # fix_missing_ecc_header: erase sector 0 of ecc (uses master image directly) + GoldenTest("fix_missing_ecc_header", action="-f -v", + use_master=True, + ecc="master_ecc", + ecc_damage=[Erase("0")]), + ] + + # ------------------------------------------------------------------ + # Permission tests on ecc requiring manual copy + chmod + # ------------------------------------------------------------------ + + def test_fix_no_read_perm_ecc(self, tmp_path): + """Fix image without read permission on ecc.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, tmp_iso) + shutil.copy2(master_ecc, tmp_ecc) + os.chmod(tmp_ecc, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-f", + ] + _run_golden_compare("fix_no_read_perm_ecc", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + finally: + os.chmod(tmp_ecc, 0o644) + + def test_fix_no_write_perm_ecc(self, tmp_path): + """Fix image without write permission for ecc.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, tmp_iso) + shutil.copy2(master_ecc, tmp_ecc) + os.chmod(tmp_ecc, 0o400) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-f", + ] + _run_golden_compare("fix_no_write_perm_ecc", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + finally: + os.chmod(tmp_ecc, 0o644) + + # ------------------------------------------------------------------ + # Plus56 repair tests (require plus56_images fixture) + # ------------------------------------------------------------------ + + def test_fix_good_plus56(self, plus56_images, tmp_path): + """Fix good image not multiple of 2048.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", + ] + _run_golden_compare("fix_good_plus56", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + _apply_damage(tmp_iso, [Byteset(ISOSIZE, 28, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", + ] + _run_golden_compare("fix_plus56", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_plus17(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes + few bytes more.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"0123456789abcdef\n") + _apply_damage(tmp_iso, [Byteset(ISOSIZE, 55, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", + ] + _run_golden_compare("fix_plus56_plus17", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_plus17_truncate(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes + few bytes more w/ truncate.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"0123456789abcdef\n") + _apply_damage(tmp_iso, [Byteset(ISOSIZE, 55, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", "--truncate", + ] + _run_golden_compare("fix_plus56_plus17_truncate", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_plus1s(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes + one sector more.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as src: + data = src.read(2048) + with open(tmp_iso, "ab") as f: + f.write(data) + _apply_damage(tmp_iso, [Byteset(21000, 55, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", "--truncate", + ] + _run_golden_compare("fix_plus56_plus1s", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_plus2s(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes + two sectors more.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as src: + data = src.read(4096) + with open(tmp_iso, "ab") as f: + f.write(data) + _apply_damage(tmp_iso, [Byteset(21000, 55, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", "--truncate", + ] + _run_golden_compare("fix_plus56_plus2s", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_plus17500(self, plus56_images, tmp_path): + """Fix image with CRC error in 56 additional bytes + more sectors.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"\x00" * 17500) + _apply_damage(tmp_iso, [Byteset(21000, 55, 90)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", "--truncate", + ] + _run_golden_compare("fix_plus56_plus17500", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_truncated(self, plus56_images, tmp_path): + """Fix truncated image not a multiple of 2048.""" + iso_plus56, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(iso_plus56, tmp_iso) + _apply_damage(tmp_iso, [Truncate(ISOSIZE - 28)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", + ] + _run_golden_compare("fix_plus56_truncated", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + def test_fix_plus56_little_truncated(self, plus56_images, tmp_path): + """Fix image not a multiple of 2048 missing a few bytes.""" + master = _ensure_master() + _, ecc_plus56 = plus56_images + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, tmp_iso) + with open(_FIXED_RANDOM_SEQ, "rb") as src: + data = src.read(50) + with open(tmp_iso, "ab") as f: + f.write(data) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(ecc_plus56), + "-f", + ] + _run_golden_compare("fix_plus56_little_truncated", cmd, tmp_path, + image_path=tmp_iso, ecc_path=ecc_plus56) + + +# --------------------------------------------------------------------------- +# Helper: append fixed-random-sequence +# --------------------------------------------------------------------------- + +def _append_fixed_random_sequence(path, times=1): + """Append the fixed-random-sequence file content to path, `times` times.""" + with open(_FIXED_RANDOM_SEQ, "rb") as f: + seq_data = f.read() + with open(path, "ab") as f: + for _ in range(times): + f.write(seq_data) + + +# --------------------------------------------------------------------------- +# Test Suite: Scanning +# --------------------------------------------------------------------------- + +class TestRS03fScan: + """RS03f scanning tests migrated from regtest/rs03f.bash lines 1011-1253.""" + + def test_scan_good(self, tmp_path): + """Scan complete / optimal image.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_good", cmd, tmp_path) + + def test_scan_good_verbose(self, tmp_path): + """Scan complete / optimal image, verbose output.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v", + ] + _run_golden_compare("scan_good_verbose", cmd, tmp_path) + + def test_scan_shorter(self, tmp_path): + """Scan image which is shorter than expected.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Truncate(ISOSIZE - 44)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_shorter", cmd, tmp_path) + + def test_scan_longer(self, tmp_path): + """Scan image which is longer than expected.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 23) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v", + ] + _run_golden_compare("scan_longer", cmd, tmp_path) + + def test_scan_tao_tail(self, tmp_path): + """Scan image with two multisession link sectors appended.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 1) + _apply_damage(sim_iso, [Erase("21000-21001")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_tao_tail", cmd, tmp_path) + + def test_scan_no_tao_tail(self, tmp_path): + """Scan image with two real sectors missing at the end.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 1) + _apply_damage(sim_iso, [Erase("20998-20999")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", "--dao", + ] + _run_golden_compare("scan_no_tao_tail", cmd, tmp_path) + + def test_scan_incompatible_ecc(self, tmp_path): + """Scan image requiring a newer dvdisaster version.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(master_ecc, tmp_ecc) + # Creator version 99.99 + version info 99.99 + patched selfcrc + for sector, offset, val in [ + (0, 84, 220), (0, 85, 65), (0, 86, 15), + (0, 88, 220), (0, 89, 65), (0, 90, 15), + (0, 96, 123), (0, 97, 99), (0, 98, 62), (0, 99, 9), + ]: + _run_dvdisaster("--debug", "-i{}".format(tmp_ecc), + "--byteset", "{},{},{}".format(sector, offset, val)) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_incompatible_ecc", cmd, tmp_path, + ignore_line_re=r'^\* $') + + def test_scan_bad_header(self, tmp_path): + """Scan image with a defective ECC header.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(0, 1, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v", + ] + _run_golden_compare("scan_bad_header", cmd, tmp_path) + + def test_scan_missing_data_sectors(self, tmp_path): + """Scan image with missing data sectors.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("1000-1049"), Erase("11230"), Erase("12450-12457"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_missing_data_sectors", cmd, tmp_path) + + def test_scan_missing_crc_sectors(self, tmp_path): + """Scan image with missing CRC sectors in ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Erase("5"), Erase("77-86")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_missing_crc_sectors", cmd, tmp_path) + + def test_scan_missing_ecc_sectors(self, tmp_path): + """Scan image with missing ECC sectors in ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Erase("120"), Erase("134-190")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_missing_ecc_sectors", cmd, tmp_path) + + def test_scan_data_bad_byte(self, tmp_path): + """Scan image with bad byte in the data section.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(1235, 50, 10)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_data_bad_byte", cmd, tmp_path) + + def test_scan_crc_bad_byte(self, tmp_path): + """Scan image with bad byte in the CRC section of ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(77, 50, 10)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_crc_bad_byte", cmd, tmp_path) + + def test_scan_ecc_bad_byte(self, tmp_path): + """Scan image with bad byte in the ECC section of ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(200, 50, 10)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_ecc_bad_byte", cmd, tmp_path) + + def test_scan_missing_ecc_header(self, tmp_path): + """Scan image with missing ecc header.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Erase("0")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v", + ] + _run_golden_compare("scan_missing_ecc_header", cmd, tmp_path) + + def test_scan_missing_ecc_header_and_crc(self, tmp_path): + """Scan image with missing ecc header and CRC blocks.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Erase("0-16")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v", + ] + _run_golden_compare("scan_missing_ecc_header_and_crc", cmd, tmp_path) + + def test_scan_missing_ecc_header_and_defective_crc(self, tmp_path): + """Scan image with ecc header missing, first CRC block defective.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Erase("0"), Byteset(2, 50, 107)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v", + ] + _run_golden_compare("scan_missing_ecc_header_and_defective_crc", cmd, tmp_path) + + def test_scan_ecc_header_crc_error(self, tmp_path): + """Checksum error in ecc header.""" + master = _ensure_master() + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(0, 32, 107)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(master), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(master), "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v", + ] + _run_golden_compare("scan_ecc_header_crc_error", cmd, tmp_path) + + +# --------------------------------------------------------------------------- +# Test Suite: Reading (linear) +# --------------------------------------------------------------------------- + +class TestRS03fReadLinear: + """RS03f linear reading tests migrated from regtest/rs03f.bash lines 1255-1491.""" + + def test_read_good(self, tmp_path): + """Read complete / optimal image.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_good", cmd, tmp_path, image_path=tmp_iso, + ecc_path=master_ecc) + + def test_read_good_verbose(self, tmp_path): + """Read complete / optimal image, verbose output.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + ] + _run_golden_compare("read_good_verbose", cmd, tmp_path, image_path=tmp_iso) + + def test_read_good_file(self, tmp_path): + """Read good image into a pre-existing image file.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_good_file", cmd, tmp_path, image_path=tmp_iso) + + def test_read_shorter(self, tmp_path): + """Read image which is shorter than expected.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Truncate(ISOSIZE - 44)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--ignore-iso-size", "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_shorter", cmd, tmp_path, image_path=tmp_iso) + + def test_read_longer(self, tmp_path): + """Read image which is longer than expected (returns image in original length).""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 23) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + ] + _run_golden_compare("read_longer", cmd, tmp_path, image_path=tmp_iso) + + def test_read_tao_tail(self, tmp_path): + """Read image with TAO tail (two link sectors appended, then erased).""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 1) + _apply_damage(sim_iso, [Erase("21000-21001")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_tao_tail", cmd, tmp_path, image_path=tmp_iso) + + def test_read_no_tao_tail(self, tmp_path): + """Read image with two real missing sectors at the end (--dao prevents clipping).""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, 1) + _apply_damage(sim_iso, [Erase("20998-20999")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--dao", + ] + _run_golden_compare("read_no_tao_tail", cmd, tmp_path, image_path=tmp_iso) + + def test_read_incompatible_ecc(self, tmp_path): + """Read image with ECC file requiring a newer dvdisaster version.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + # Patch creator version to 99.99 and update selfcrc + _apply_damage(tmp_ecc, [ + Byteset(0, 84, 220), Byteset(0, 85, 65), Byteset(0, 86, 15), + Byteset(0, 88, 220), Byteset(0, 89, 65), Byteset(0, 90, 15), + Byteset(0, 96, 123), Byteset(0, 97, 99), Byteset(0, 98, 62), + Byteset(0, 99, 9), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_incompatible_ecc", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=r'^\* $') + + def test_read_bad_header(self, tmp_path): + """Read image with a defective ECC header.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(0, 1, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + ] + _run_golden_compare("read_bad_header", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + + def test_read_missing_data_sectors(self, tmp_path): + """Read image with missing data sectors.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("1000-1049"), Erase("11230"), Erase("12450-12457"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_missing_data_sectors", cmd, tmp_path, image_path=tmp_iso) + + def test_read_missing_crc_sectors(self, tmp_path): + """Read image with missing CRC sectors in ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Erase("5"), Erase("77-86")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_missing_crc_sectors", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + + def test_read_missing_ecc_sectors(self, tmp_path): + """Read image with missing ECC sectors in ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Erase("120"), Erase("134-190")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_missing_ecc_sectors", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + + def test_read_data_bad_byte(self, tmp_path): + """Read image with bad bytes in the data section.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Byteset(0, 50, 10), Byteset(1235, 50, 10), Byteset(20999, 50, 10), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_data_bad_byte", cmd, tmp_path, image_path=tmp_iso) + + def test_read_crc_bad_byte(self, tmp_path): + """Read image with a bad byte in the CRC section of ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(77, 50, 10)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_crc_bad_byte", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + + def test_read_ecc_bad_byte(self, tmp_path): + """Read image with a bad byte in the ECC section of ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Byteset(200, 50, 10)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_ecc_bad_byte", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + + def test_read_crc_section_with_uncorrectable_dsm(self, tmp_path): + """Read image with uncorrectable dead sector markers in CRC area of ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03f-tmp.ecc") + shutil.copy2(master, sim_iso) + shutil.copy2(_ensure_master_ecc(), tmp_ecc) + _apply_damage(tmp_ecc, [Erase("10"), Erase("15"), Erase("20")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_crc_section_with_uncorrectable_dsm", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + + def test_read_second_pass_with_crc_error(self, tmp_path): + """Re-read medium with CRC error using a pre-existing partial image.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + # Prepare sim_iso with a bad byte + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(15830, 8, 3)]) + # Prepare tmp_iso as a partial image (pre-existing, with some sectors erased) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Erase("15800-16199")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_second_pass_with_crc_error", cmd, tmp_path, + image_path=tmp_iso) + + +# --------------------------------------------------------------------------- +# Test Suite: Reading (adaptive) +# --------------------------------------------------------------------------- + +class TestRS03fReadAdaptive: + """RS03f adaptive reading tests migrated from regtest/rs03f.bash lines 1516-1531.""" + + def test_adaptive_good(self, tmp_path): + """Adaptive read of a good image with RS03 ecc file.""" + master = _ensure_master() + master_ecc = _ensure_master_ecc() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03f-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(master_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--adaptive-read", + ] + _run_golden_compare("adaptive_good", cmd, tmp_path, image_path=tmp_iso, + ecc_path=master_ecc) diff --git a/tests/test_rs03i.py b/tests/test_rs03i.py new file mode 100644 index 00000000..a5b72a3f --- /dev/null +++ b/tests/test_rs03i.py @@ -0,0 +1,3057 @@ +""" +RS03i regression tests -- from regtest/rs03i.bash. + +RS03i is the image-embedded ECC mode: ECC data is embedded directly in the image +(like RS02), but uses the RS03 codec with configurable redundancy. + +Tests are grouped into: + - TestRS03iStrip: 2 strip tests + - TestRS03iVerify: 48 verify tests + - TestRS03iCreate: 20 creation tests + - TestRS03iFix: 27 fixing tests + - TestRS03iScan: 33 scanning tests + - TestRS03iReadLinear: 29 linear reading tests +""" + +import difflib +import os +import re +import shutil + +import pytest + +from framework import ( + Byteset, + Erase, + GoldenTest, + GoldenTestSuite, + PadSectors, + Truncate, + _ISODIR, + _TMPDIR, + _find_binary, + _md5_file, + _run_dvdisaster, + _apply_damage, + clean_output, + parse_golden_file, + resolve_golden_path, +) + +_PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +_DATABASE = os.path.join(_PROJECT_ROOT, "regtest", "database") +_FIXED_RANDOM_SEQ = os.path.join(_PROJECT_ROOT, "regtest", "fixed-random-sequence") + +# Constants matching the bash variables +ISOSIZE = 21000 +ECCSIZE = 25000 +REAL_ECCSIZE = 24990 +SETVERSION = "0.80" +CUSTOM_ECCSIZE = 28000 + +# Large master image constants +LMI_HEADER = 235219 +LMI_LAYER_SIZE = 1409 +LMI_FIRSTCRC = 235303 + + +# --------------------------------------------------------------------------- +# Helper: ensure images exist (idempotent) +# --------------------------------------------------------------------------- + +def _ensure_raw_image(): + """Create the raw (unaugmented) 21000-sector image in ISODIR.""" + os.makedirs(_ISODIR, exist_ok=True) + raw_path = os.path.join(_ISODIR, "rs03i-raw.iso") + if os.path.isfile(raw_path): + return raw_path + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(raw_path), + "--random-image", str(ISOSIZE), + check=True, + ) + return raw_path + + +def _ensure_raw_lmi246(): + """Create raw image for LMI246 tests (LMI_LAYER_SIZE*246-2 sectors).""" + os.makedirs(_ISODIR, exist_ok=True) + path = os.path.join(_ISODIR, "rs03i-raw-lmi246.iso") + if os.path.isfile(path): + return path + sectors = LMI_LAYER_SIZE * 246 - 2 # 346612 + _run_dvdisaster( + "--debug", + "-i{}".format(path), + "--random-image", str(sectors), + check=True, + ) + return path + + +def _ensure_raw_lmi84(): + """Create raw image for LMI84 tests (LMI_LAYER_SIZE*84-2 sectors).""" + os.makedirs(_ISODIR, exist_ok=True) + path = os.path.join(_ISODIR, "rs03i-raw-lmi84.iso") + if os.path.isfile(path): + return path + sectors = LMI_LAYER_SIZE * 84 - 2 # 118354 + _run_dvdisaster( + "--debug", + "-i{}".format(path), + "--random-image", str(sectors), + check=True, + ) + return path + + +def _ensure_raw_lmi84s(): + """Create raw image for LMI84S tests (LMI_LAYER_SIZE*84-2-6000 sectors).""" + os.makedirs(_ISODIR, exist_ok=True) + path = os.path.join(_ISODIR, "rs03i-raw-lmi84s.iso") + if os.path.isfile(path): + return path + sectors = LMI_LAYER_SIZE * 84 - 2 - 6000 # 112354 + _run_dvdisaster( + "--debug", + "-i{}".format(path), + "--random-image", str(sectors), + check=True, + ) + return path + + +def _ensure_master(): + """Create the RS03i augmented master image (raw + RS03 ECC embedded).""" + os.makedirs(_ISODIR, exist_ok=True) + master_path = os.path.join(_ISODIR, "rs03i-master.iso") + if os.path.isfile(master_path): + return master_path + raw_path = _ensure_raw_image() + shutil.copy2(raw_path, master_path) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), + "-mRS03", "-n{}".format(ECCSIZE), "-c", + check=True, + ) + return master_path + + +def _ensure_large_master(): + """Create the large RS03i master image (235219 sectors + RS03 ECC).""" + os.makedirs(_ISODIR, exist_ok=True) + path = os.path.join(_ISODIR, "rs03i-large.iso") + if os.path.isfile(path): + return path + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(path), + "--random-image", "235219", + check=True, + ) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(path), + "-mRS03", "-c", + check=True, + ) + return path + + +def _ensure_custom_master(): + """Create the RS03i custom-size master image (raw + RS03 -n28000).""" + os.makedirs(_ISODIR, exist_ok=True) + path = os.path.join(_ISODIR, "rs03i-custom-master.iso") + if os.path.isfile(path): + return path + raw_path = _ensure_raw_image() + shutil.copy2(raw_path, path) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(path), + "-mRS03", "-n{}".format(CUSTOM_ECCSIZE), "-c", + check=True, + ) + return path + + +# --------------------------------------------------------------------------- +# Helper: append fixed-random-sequence to a file +# --------------------------------------------------------------------------- + +def _append_fixed_random_sequence(path, times=1): + """Append the fixed-random-sequence file to path the given number of times.""" + with open(_FIXED_RANDOM_SEQ, "rb") as f: + seq_data = f.read() + with open(path, "ab") as f: + for _ in range(times): + f.write(seq_data) + + +# --------------------------------------------------------------------------- +# Helper: golden file comparison +# --------------------------------------------------------------------------- + +def _run_golden_compare(test_name, cmd_args, tmp_path, + image_path=None, ecc_path=None, + ignore_line_re=None): + """Run dvdisaster, clean output, compare against golden file. + + Args: + test_name: name matching the golden file (e.g. 'good') + cmd_args: list of CLI arguments + tmp_path: pytest tmp_path for cleaning + image_path: path to image file for MD5 check (or None) + ecc_path: path to ecc file for MD5 check (or None) + ignore_line_re: regex pattern for lines to strip from output + """ + golden_base = os.path.join(_DATABASE, "RS03i_{}".format(test_name)) + golden_path = resolve_golden_path(golden_base) + if not os.path.isfile(golden_path): + pytest.skip("Golden file not found: {}".format(golden_path)) + + expected_image_md5, expected_ecc_md5, expected_output = parse_golden_file(golden_path) + + _, raw_output = _run_dvdisaster(*cmd_args) + + work_dir = str(tmp_path) + cleaned = clean_output( + raw_output, + tmp_dirs=[work_dir, _TMPDIR, _ISODIR], + strip_header=True, + ) + + # Filter ignored lines + if ignore_line_re: + lines = cleaned.split("\n") + lines = [l for l in lines if not re.match(ignore_line_re, l)] + cleaned = "\n".join(lines) + + if cleaned != expected_output: + diff = difflib.unified_diff( + expected_output.splitlines(keepends=True), + cleaned.splitlines(keepends=True), + fromfile="expected (golden)", + tofile="actual (cleaned)", + ) + diff_text = "".join(diff) + assert cleaned == expected_output, ( + "Output mismatch for test '{}':\n{}".format(test_name, diff_text) + ) + + if expected_image_md5 is not None and image_path and os.path.isfile(image_path): + actual_md5 = _md5_file(image_path) + assert actual_md5 == expected_image_md5, ( + "Image MD5 mismatch for '{}': expected {}, got {}".format( + test_name, expected_image_md5, actual_md5) + ) + + if expected_ecc_md5 is not None and ecc_path and os.path.isfile(ecc_path): + actual_md5 = _md5_file(ecc_path) + assert actual_md5 == expected_ecc_md5, ( + "ECC MD5 mismatch for '{}': expected {}, got {}".format( + test_name, expected_ecc_md5, actual_md5) + ) + + +# --------------------------------------------------------------------------- +# Common damage patterns +# --------------------------------------------------------------------------- + +_DAMAGE_DSM1 = [ + Erase("3030"), + Byteset(3030, 353, 49), + Erase("4400"), + Byteset(4400, 353, 53), + Erase("4411"), + Byteset(4411, 353, 53), +] + +_DAMAGE_DSM2 = [ + Erase("3030"), + Byteset(3030, 416, 55), + Byteset(3030, 556, 32), + Byteset(3030, 557, 50), + Erase("4400"), + Byteset(4400, 416, 53), + Byteset(4400, 556, 32), + Byteset(4400, 557, 50), + Erase("4411"), + Byteset(4411, 416, 53), + Byteset(4411, 556, 32), + Byteset(4411, 557, 50), +] + + +# =========================================================================== +# Strip tests (2) +# =========================================================================== + +class TestRS03iStrip(GoldenTestSuite): + codec = "RS03" + codec_prefix = "RS03i" + master = "rs03i-master.iso" + image_size = ISOSIZE + tests = [] + + def _ensure_master(self): + return _ensure_master() + + def test_strip_ecc(self, tmp_path): + """Strip ECC from an augmented RS03i image.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master_path, tmp_iso) + _run_golden_compare( + "strip_ecc", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-v", "--strip"], + tmp_path, image_path=tmp_iso, + ) + + def test_strip_ecc_not(self, tmp_path): + """Strip ECC from a non-augmented (already stripped) RS03i image.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master_path, tmp_iso) + # First strip the ECC + _run_dvdisaster("-i{}".format(tmp_iso), "--strip") + # Then try to strip again + _run_golden_compare( + "strip_ecc_not", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-v", "--strip"], + tmp_path, image_path=tmp_iso, + ) + + +# =========================================================================== +# Verify tests (48) +# =========================================================================== + +class TestRS03iVerify(GoldenTestSuite): + codec = "RS03" + codec_prefix = "RS03i" + master = "rs03i-master.iso" + image_size = ISOSIZE + + tests = [ + # 1. good + GoldenTest("good", action="-t", use_master=True), + # 2. good_quick + GoldenTest("good_quick", action="-tq", use_master=True), + # 3. no_image + GoldenTest("no_image", action="-t", image="no.iso", ecc="no.ecc"), + # 4. truncated + GoldenTest("truncated", action="-t", + damage=[Truncate(REAL_ECCSIZE - 5)]), + # 5. plus1 + GoldenTest("plus1", action="-t", + damage=[PadSectors(1)]), + # 6. plus17 + GoldenTest("plus17", action="-t", + damage=[PadSectors(17)]), + # 7. bad_crc_cookie + GoldenTest("bad_crc_cookie", action="-t", + damage=[Byteset(21100, 1026, 1)]), + # 8. bad_crc_checksum + GoldenTest("bad_crc_checksum", action="-t", + damage=[Byteset(21100, 900, 1), Byteset(21107, 555, 1)]), + # 9. missing_crc_sectors + GoldenTest("missing_crc_sectors", action="-t", + damage=[Erase("21100-21108"), Erase("21111")]), + # 10. missing_data_sectors + GoldenTest("missing_data_sectors", action="-t", + damage=[Erase("1500-1673"), Erase("13420-14109"), Erase("17812")]), + # 11. missing_ecc_sectors + GoldenTest("missing_ecc_sectors", action="-t", + damage=[Erase("21168"), Erase("21900-21950")]), + # 12. data_bad_byte + GoldenTest("data_bad_byte", action="-t", + damage=[Byteset(4096, 100, 17)]), + # 13. ecc_bad_byte + GoldenTest("ecc_bad_byte", action="-t", + damage=[Byteset(21878, 100, 17)]), + # 14. uncorrectable_dsm_in_image + GoldenTest("uncorrectable_dsm_in_image", action="-t", + damage=_DAMAGE_DSM1), + # 15. uncorrectable_dsm_in_image_verbose + GoldenTest("uncorrectable_dsm_in_image_verbose", action="-t -v", + damage=_DAMAGE_DSM1), + # 16. uncorrectable_dsm_in_image2 + GoldenTest("uncorrectable_dsm_in_image2", action="-t", + damage=_DAMAGE_DSM2), + # 17. uncorrectable_dsm_in_image2_verbose + GoldenTest("uncorrectable_dsm_in_image2_verbose", action="-t -v", + damage=_DAMAGE_DSM2), + ] + + def _ensure_master(self): + return _ensure_master() + + # ----------------------------------------------------------------------- + # Manual tests: complex setup + # ----------------------------------------------------------------------- + + def test_plus_56_bytes(self, tmp_path): + """Image with 56 extra bytes (char '1'), augmented with RS03, then verified.""" + raw_path = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + + with open(tmp_iso, "ab") as f: + f.write(b"1" * 56) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS03", "-n{}".format(ECCSIZE), "-c", + ) + + _run_golden_compare( + "plus_56_bytes", + ["--regtest", "--no-progress", "--debug", + "-n{}".format(ECCSIZE), + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ignore_line_re=r"^Avg performance|^Augmenting image with Method RS03", + ) + + def test_layer_multiple(self, tmp_path): + """Image size is exact multiple of layer size.""" + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + _run_dvdisaster( + "--debug", "-i", tmp_iso, "--random-image", "14508", + ) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-mRS03", "-n20000", "-c", "-i", tmp_iso, + ) + _run_golden_compare( + "layer_multiple", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t"], + tmp_path, image_path=tmp_iso, + ) + + def test_no_padding(self, tmp_path): + """Image size crafted to have no padding behind data area.""" + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + _run_dvdisaster( + "--debug", "-i", tmp_iso, "--random-image", "14506", + ) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-mRS03", "-n20000", "-c", "-i", tmp_iso, + ) + _run_golden_compare( + "no_padding", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t"], + tmp_path, image_path=tmp_iso, + ) + + def test_with_rs01_file(self, tmp_path): + """Augmented image protected by an outer RS01 error correction file.""" + master_path = _ensure_master() + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal", + ) + + _run_golden_compare( + "with_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(master_path), "-e{}".format(tmp_ecc), "-v", "-t"], + tmp_path, image_path=master_path, ecc_path=tmp_ecc, + ) + + def test_with_wrong_rs01_file(self, tmp_path): + """Augmented image with non-matching RS01 error correction file.""" + master_path = _ensure_master() + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-c", "-n", "normal", + ) + _run_dvdisaster( + "--debug", "-i", tmp_ecc, "--byteset", "0,24,1", + ) + + _run_golden_compare( + "with_wrong_rs01_file", + ["--regtest", "--no-progress", + "-i{}".format(master_path), "-e{}".format(tmp_ecc), "-v", "-t"], + tmp_path, image_path=master_path, ecc_path=tmp_ecc, + ) + + def test_with_rs03_file(self, tmp_path): + """Augmented image protected by an outer RS03 error correction file.""" + master_path = _ensure_master() + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master_path), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file", + ) + + _run_golden_compare( + "with_rs03_file", + ["--regtest", "--no-progress", + "-i{}".format(master_path), "-e{}".format(tmp_ecc), "-v", "-t"], + tmp_path, image_path=master_path, ecc_path=tmp_ecc, + ) + + def test_with_wrong_rs03_file(self, tmp_path): + """Augmented image with non-matching RS03 error correction file.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + + # Create image with manipulated fingerprint sector + shutil.copy2(master_path, tmp_iso) + _run_dvdisaster( + "--debug", "-i{}".format(tmp_iso), "--byteset", "16,240,1", + ) + + # Create ecc file for "wrong" image + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file", + ) + + # Test against original image + _run_golden_compare( + "with_wrong_rs03_file", + ["--regtest", "--no-progress", + "-i{}".format(master_path), "-e{}".format(tmp_ecc), "-v", "-t"], + tmp_path, image_path=master_path, ecc_path=tmp_ecc, + ) + + def test_crc_section_with_uncorrectable_dsm(self, tmp_path): + """CRC section with uncorrectable dead sector markers.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master_path, tmp_iso) + + damage = [ + Erase("21077"), + Byteset(21077, 353, 50), + Erase("21080"), + Byteset(21080, 353, 53), + Erase("21081"), + Byteset(21081, 353, 53), + ] + _apply_damage(tmp_iso, damage) + + _run_golden_compare( + "crc_section_with_uncorrectable_dsm", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t"], + tmp_path, image_path=tmp_iso, + ) + + def test_ecc_section_with_uncorrectable_dsm(self, tmp_path): + """ECC section with uncorrectable dead sector markers.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master_path, tmp_iso) + + damage = [ + Erase("22030"), + Byteset(22030, 353, 49), + Erase("22400"), + Byteset(22400, 353, 53), + Erase("22411"), + Byteset(22411, 353, 53), + ] + _apply_damage(tmp_iso, damage) + + _run_golden_compare( + "ecc_section_with_uncorrectable_dsm", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t"], + tmp_path, image_path=tmp_iso, + ) + + def test_missing_iso_header(self, tmp_path): + """Large image with missing ISO header (sector 16).""" + large_path = _ensure_large_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large_path, tmp_iso) + + _apply_damage(tmp_iso, [Erase("16")]) + + _run_golden_compare( + "missing_iso_header", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-tq", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_missing_header(self, tmp_path): + """Large image with missing ECC header (first sector).""" + large_path = _ensure_large_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large_path, tmp_iso) + + _apply_damage(tmp_iso, [Erase(str(LMI_HEADER))]) + + _run_golden_compare( + "missing_header", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_missing_header5(self, tmp_path): + """Large image with missing ECC header (second sector).""" + large_path = _ensure_large_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large_path, tmp_iso) + + _apply_damage(tmp_iso, [Erase(str(LMI_HEADER + 1))]) + + _run_golden_compare( + "missing_header5", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_missing_header6(self, tmp_path): + """Large image with both ECC header sectors missing.""" + large_path = _ensure_large_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large_path, tmp_iso) + + _apply_damage(tmp_iso, [Erase(str(LMI_HEADER)), Erase(str(LMI_HEADER + 1))]) + + _run_golden_compare( + "missing_header6", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_missing_header2(self, tmp_path): + """Missing ECC header; first CRC sector and some data sectors unreadable.""" + large_path = _ensure_large_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large_path, tmp_iso) + + damage = [Erase(str(LMI_HEADER)), Erase(str(LMI_FIRSTCRC))] + for i in range(120 * LMI_LAYER_SIZE, 136 * LMI_LAYER_SIZE, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + _apply_damage(tmp_iso, damage) + + _run_golden_compare( + "missing_header2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_missing_header3(self, tmp_path): + """Missing ECC header; first few slices have damaged CRC sectors.""" + large_path = _ensure_large_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large_path, tmp_iso) + + damage = [Erase(str(LMI_HEADER))] + # slice 0 + damage.append(Erase(str(LMI_FIRSTCRC))) + for i in range(150 * LMI_LAYER_SIZE, 237 * LMI_LAYER_SIZE, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 1 (CRC sector present but bad sector checksum) + damage.append(Byteset(LMI_FIRSTCRC + 1, 500, 0)) + for i in range(110 * LMI_LAYER_SIZE + 1, 141 * LMI_LAYER_SIZE + 1, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 2 + damage.append(Erase(str(LMI_FIRSTCRC + 2))) + for i in range(110 * LMI_LAYER_SIZE + 2, 141 * LMI_LAYER_SIZE + 2, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 3 + damage.append(Byteset(LMI_FIRSTCRC + 3, 500, 0)) + for i in range(110 * LMI_LAYER_SIZE + 3, 140 * LMI_LAYER_SIZE + 3, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 4 + damage.append(Erase(str(LMI_FIRSTCRC + 4))) + + _apply_damage(tmp_iso, damage) + + _run_golden_compare( + "missing_header3", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_missing_header4(self, tmp_path): + """Missing ECC header; every CRC sector except the last is unreadable.""" + large_path = _ensure_large_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large_path, tmp_iso) + + damage = [Erase(str(LMI_HEADER))] + # slice 0 + damage.append(Erase(str(LMI_FIRSTCRC))) + for i in range(100 * LMI_LAYER_SIZE, 187 * LMI_LAYER_SIZE, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 1 + damage.append(Byteset(LMI_FIRSTCRC + 1, 500, 0)) + for i in range(110 * LMI_LAYER_SIZE + 1, 141 * LMI_LAYER_SIZE + 1, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 2 + damage.append(Erase(str(LMI_FIRSTCRC + 2))) + for i in range(110 * LMI_LAYER_SIZE + 2, 141 * LMI_LAYER_SIZE + 2, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 3 + damage.append(Byteset(LMI_FIRSTCRC + 3, 500, 0)) + for i in range(110 * LMI_LAYER_SIZE + 3, 140 * LMI_LAYER_SIZE + 3, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slices 4-1407 + damage.append(Erase("{}-{}".format(LMI_FIRSTCRC + 4, LMI_FIRSTCRC + 1407))) + + _apply_damage(tmp_iso, damage) + + _run_golden_compare( + "missing_header4", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_missing_header_truncated(self, tmp_path): + """Missing ECC header (like header2) plus truncated image.""" + large_path = _ensure_large_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large_path, tmp_iso) + + damage = [Erase(str(LMI_HEADER)), Erase(str(LMI_FIRSTCRC))] + for i in range(120 * LMI_LAYER_SIZE, 136 * LMI_LAYER_SIZE, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + damage.append(Truncate(300000)) + _apply_damage(tmp_iso, damage) + + _run_golden_compare( + "missing_header_truncated", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_missing_header_no_crcsec(self, tmp_path): + """Missing ECC header and entire CRC layer erased.""" + large_path = _ensure_large_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + none_file = os.path.join(_TMPDIR, "none.file") + shutil.copy2(large_path, tmp_iso) + + damage = [ + Erase(str(LMI_HEADER)), + Erase("{}-{}".format(LMI_FIRSTCRC, LMI_FIRSTCRC + 1408)), + ] + _apply_damage(tmp_iso, damage) + + _run_golden_compare( + "missing_header_no_crcsec", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(none_file), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_random_image(self, tmp_path): + """Completely random image with no ECC.""" + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + none_file = os.path.join(_TMPDIR, "none.file") + _run_dvdisaster( + "--debug", "-i{}".format(tmp_iso), "--random-image", "359295", + ) + _run_golden_compare( + "random_image", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(none_file), "-tq", "-v"], + tmp_path, image_path=tmp_iso, + ) + + @pytest.mark.slow + def test_rediscover_8_roots(self, tmp_path): + """Image with 8 roots, no ECC header (first sector erased).""" + raw_path = _ensure_raw_lmi246() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS03", "-c", "-x", "2", + ) + _apply_damage(tmp_iso, [Erase("346612")]) + + _run_golden_compare( + "rediscover_8_roots", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + @pytest.mark.slow + def test_rediscover_8_roots2(self, tmp_path): + """Image with 8 roots, no ECC header and some CRC sectors erased.""" + raw_path = _ensure_raw_lmi246() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS03", "-c", "-x", "2", + ) + _apply_damage(tmp_iso, [Erase("346612-346620")]) + + _run_golden_compare( + "rediscover_8_roots2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + @pytest.mark.slow + def test_rediscover_170_roots(self, tmp_path): + """Image with 170 roots, no ECC header (first sector erased).""" + raw_path = _ensure_raw_lmi84() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS03", "-c", "-x", "2", + ) + _apply_damage(tmp_iso, [Erase("118354")]) + + _run_golden_compare( + "rediscover_170_roots", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + @pytest.mark.slow + def test_rediscover_170_roots2(self, tmp_path): + """Image with 170 roots, no ECC header and some CRC sectors erased.""" + raw_path = _ensure_raw_lmi84() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS03", "-c", "-x", "2", + ) + _apply_damage(tmp_iso, [Erase("118354-118360")]) + + _run_golden_compare( + "rediscover_170_roots2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + @pytest.mark.slow + def test_rediscover_170_roots_padding(self, tmp_path): + """Image with 170 roots and padding, ECC header present.""" + raw_path = _ensure_raw_lmi84s() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS03", "-c", "-x", "2", + ) + + # Golden file uses hyphen: rediscover_170_roots-padding + _run_golden_compare( + "rediscover_170_roots-padding", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-tq", "-v"], + tmp_path, image_path=tmp_iso, + ) + + @pytest.mark.slow + def test_rediscover_170_roots_padding2(self, tmp_path): + """Image with 170 roots and padding, no ECC header, some CRC sectors erased.""" + raw_path = _ensure_raw_lmi84s() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw_path, tmp_iso) + + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), "-mRS03", "-c", "-x", "2", + ) + _apply_damage(tmp_iso, [Erase("112354"), Erase("118356-118360")]) + + # Golden file uses hyphen: rediscover_170_roots-padding2 + _run_golden_compare( + "rediscover_170_roots-padding2", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_with_ecc_file_header(self, tmp_path): + """Image contains ECC header with the ecc file flag set.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master_path, tmp_iso) + + damage = [ + Byteset(21000, 16, 2), + Byteset(21000, 96, 142), + Byteset(21000, 97, 43), + Byteset(21000, 98, 137), + Byteset(21000, 99, 29), + ] + _apply_damage(tmp_iso, damage) + + _run_golden_compare( + "with_ecc_file_header", + ["--regtest", "--no-progress", "--debug", "-n{}".format(ECCSIZE), + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_with_ecc_file_crc_block(self, tmp_path): + """Image with defective ECC header and a CRC block from an ecc file.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master_path, tmp_iso) + + damage = [ + Erase("21000"), + Byteset(21070, 1040, 2), + Byteset(21070, 1120, 208), + Byteset(21070, 1121, 250), + Byteset(21070, 1122, 142), + Byteset(21070, 1123, 101), + ] + _apply_damage(tmp_iso, damage) + + _run_golden_compare( + "with_ecc_file_crc_block", + ["--regtest", "--no-progress", "--debug", "-n{}".format(ECCSIZE), + "-i{}".format(tmp_iso), "-t", "-v"], + tmp_path, image_path=tmp_iso, + ) + + def test_with_crc_error_in_padding(self, tmp_path): + """Image contains CRC error in the padding section.""" + master_path = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master_path, tmp_iso) + + _apply_damage(tmp_iso, [Byteset(21020, 400, 255)]) + + _run_golden_compare( + "with_crc_error_in_padding", + ["--regtest", "--no-progress", "--debug", + "-t", "-n{}".format(ECCSIZE), + "-i{}".format(tmp_iso)], + tmp_path, image_path=tmp_iso, + ) + + def test_verify_custom_n_good(self, tmp_path): + """Verify custom-n image without specifying -n (ECC header intact).""" + custom_path = _ensure_custom_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(custom_path, tmp_iso) + + _run_golden_compare( + "verify_custom_n_good", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t"], + tmp_path, image_path=tmp_iso, + ) + + def test_verify_custom_n_bad_header_no_n(self, tmp_path): + """Verify custom-n image with damaged header and without -n.""" + custom_path = _ensure_custom_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(custom_path, tmp_iso) + + _apply_damage(tmp_iso, [Byteset(ISOSIZE, 1, 1)]) + + _run_golden_compare( + "verify_custom_n_bad_header_no_n", + ["--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-t"], + tmp_path, image_path=tmp_iso, + ) + + def test_verify_custom_n_bad_header_with_n(self, tmp_path): + """Verify custom-n image with damaged header, specifying -n.""" + custom_path = _ensure_custom_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(custom_path, tmp_iso) + + _apply_damage(tmp_iso, [Byteset(ISOSIZE, 1, 1)]) + + _run_golden_compare( + "verify_custom_n_bad_header_with_n", + ["--regtest", "--no-progress", "--debug", + "-n{}".format(CUSTOM_ECCSIZE), + "-i{}".format(tmp_iso), "-t"], + tmp_path, image_path=tmp_iso, + ) + + +# --------------------------------------------------------------------------- +# Creation tests +# --------------------------------------------------------------------------- + +class TestRS03iCreate: + """RS03i creation tests -- from regtest/rs03i.bash lines 739-1013.""" + + _CREATE_IGNORE_RE = r'^Avg performance|^Augmenting image with Method RS03' + + def test_ecc_create(self, tmp_path): + """Basic augmented image creation.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ] + _run_golden_compare("ecc_create", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_missing_image(self, tmp_path): + """Create augmented image with missing image.""" + no_iso = os.path.join(_ISODIR, "no.iso") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(no_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ] + _run_golden_compare("ecc_missing_image", cmd, tmp_path, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_no_read_perm(self, tmp_path): + """Create augmented image with no read permission on image.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + os.chmod(tmp_iso, 0o000) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ] + _run_golden_compare("ecc_no_read_perm", cmd, tmp_path, + ignore_line_re=self._CREATE_IGNORE_RE) + finally: + os.chmod(tmp_iso, 0o644) + + def test_ecc_no_write_perm(self, tmp_path): + """Create augmented image with no write permission on image.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + os.chmod(tmp_iso, 0o400) + try: + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ] + _run_golden_compare("ecc_no_write_perm", cmd, tmp_path, + ignore_line_re=self._CREATE_IGNORE_RE) + finally: + os.chmod(tmp_iso, 0o644) + + def test_ecc_from_rs03(self, tmp_path): + """Create augmented image from already RS03-augmented image.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ] + _run_golden_compare("ecc_from_rs03", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_from_rs02(self, tmp_path): + """Create augmented image from already RS02-augmented image.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + # Augment with RS02 first + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE + 5000), "-c", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ] + _run_golden_compare("ecc_from_rs02", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_from_larger_rs03(self, tmp_path): + """Create augmented image from RS03-augmented image with higher redundancy.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + # Augment with RS03 larger first + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), + "-mRS03", "-n{}".format(ECCSIZE + 5000), "-c", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ] + _run_golden_compare("ecc_from_larger_rs03", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_from_rs02_non_blocksize(self, tmp_path): + """Create augmented image from RS02-augmented image with non-block size.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + # Append 56 bytes + with open(tmp_iso, "ab") as f: + f.write(b"1" * 56) + # Augment with RS02 + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), + "-mRS02", "-n{}".format(ECCSIZE), "-c", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", "-a", "RS03", + ] + _run_golden_compare("ecc_from_rs02_non_blocksize", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_from_rs03_non_blocksize(self, tmp_path): + """Create augmented image from RS03-augmented image with non-block size.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + # Append 56 bytes + with open(tmp_iso, "ab") as f: + f.write(b"1" * 56) + # Augment with RS03 + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", "-a", "RS03", + ] + _run_golden_compare("ecc_from_rs03_non_blocksize", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_from_larger_rs03_non_blocksize(self, tmp_path): + """Create augmented image from RS03-augmented image with non-block size, larger redundancy.""" + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + # Create fresh random image of ISOSIZE+1 sectors, then truncate + _run_dvdisaster( + "--debug", + "-i{}".format(tmp_iso), + "--random-image", str(ISOSIZE + 1), + ) + _run_dvdisaster( + "--debug", + "-i{}".format(tmp_iso), + "--truncate={}".format(ISOSIZE), + ) + # Append 56 bytes + with open(tmp_iso, "ab") as f: + f.write(b"1" * 56) + # Augment with RS03 larger + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(tmp_iso), + "-mRS03", "-n{}".format(ECCSIZE + 5000), "-c", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ] + _run_golden_compare("ecc_from_larger_rs03_non_blocksize", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_non_blocksize(self, tmp_path): + """Create augmented image from image with 56 extra bytes.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + # Append 56 bytes + with open(tmp_iso, "ab") as f: + f.write(b"1" * 56) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ] + _run_golden_compare("ecc_non_blocksize", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_missing_sectors(self, tmp_path): + """Create augmented image from image with missing sectors.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + _apply_damage(tmp_iso, [Erase("500-524")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n{}".format(ECCSIZE), "-c", + ] + _run_golden_compare("ecc_missing_sectors", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_layer_multiple(self, tmp_path): + """Create augmented image where image size is exact multiple of layer size.""" + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + _run_dvdisaster( + "--debug", + "-i{}".format(tmp_iso), + "--random-image", "14508", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n20000", "-c", + ] + _run_golden_compare("ecc_layer_multiple", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_no_padding(self, tmp_path): + """Create augmented image crafted to have no padding.""" + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + _run_dvdisaster( + "--debug", + "-i{}".format(tmp_iso), + "--random-image", "14506", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "-mRS03", "-n20000", "-c", + ] + _run_golden_compare("ecc_no_padding", cmd, tmp_path, image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_create_after_read(self, tmp_path): + """Read image and create ecc in one call.""" + raw = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-mRS03", "-c", "-n{}".format(ECCSIZE), "-v", "--spinup-delay=0", + ] + _run_golden_compare("ecc_create_after_read", cmd, tmp_path, + image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_create_after_partial_read(self, tmp_path): + """Create ecc after completing partial image.""" + raw = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + shutil.copy2(raw, sim_iso) + shutil.copy2(sim_iso, tmp_iso) + _apply_damage(tmp_iso, [Erase("1000-1500")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-mRS03", "-c", "-n{}".format(ECCSIZE), "-v", "--spinup-delay=0", + ] + _run_golden_compare("ecc_create_after_partial_read", cmd, tmp_path, + image_path=tmp_iso, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_recreate_after_read_rs01(self, tmp_path): + """Read RS01-protected image, create RS03i augmentation.""" + raw = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + shutil.copy2(raw, sim_iso) + # Create RS01 ecc for the sim image + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e{}".format(tmp_ecc), + "-mRS01", "-c", "-n", "10r", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-mRS03", "-c", "-n{}".format(ECCSIZE), "-v", "--spinup-delay=0", + ] + _run_golden_compare("ecc_recreate_after_read_rs01", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_recreate_after_read_rs02(self, tmp_path): + """Read RS02-protected image, create RS03i augmentation.""" + raw = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + shutil.copy2(raw, sim_iso) + # Augment sim image with RS02 + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), + "-mRS02", "-c", "-n24000", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-mRS03", "-c", "-n{}".format(ECCSIZE), "-v", "--spinup-delay=0", + ] + _run_golden_compare("ecc_recreate_after_read_rs02", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_recreate_after_read_rs03i(self, tmp_path): + """Read RS03i-protected image, create new RS03i augmentation.""" + raw = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + shutil.copy2(raw, sim_iso) + # Augment sim image with RS03i + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), + "-mRS03", "-c", "-n23000", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-mRS03", "-c", "-n{}".format(ECCSIZE), "-v", "--spinup-delay=0", + ] + _run_golden_compare("ecc_recreate_after_read_rs03i", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=self._CREATE_IGNORE_RE) + + def test_ecc_recreate_after_read_rs03f(self, tmp_path): + """Read RS03f-protected image, create RS03i augmentation.""" + raw = _ensure_raw_image() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + shutil.copy2(raw, sim_iso) + # Create RS03f ecc file for the sim image + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "10r", "-o", "file", + ) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--set-version", SETVERSION, + "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "-r", "-mRS03", "-c", "-n{}".format(ECCSIZE), "-v", "--spinup-delay=0", + ] + _run_golden_compare("ecc_recreate_after_read_rs03f", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc, + ignore_line_re=self._CREATE_IGNORE_RE) + + +# --------------------------------------------------------------------------- +# Fix tests +# --------------------------------------------------------------------------- + +class TestRS03iFix: + """RS03i fix (repair) tests -- from regtest/rs03i.bash lines 1015-1369.""" + + def test_fix_no_read_perm(self, tmp_path): + """Fix fails when image is not readable.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + os.chmod(tmp_iso, 0o000) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + try: + _run_golden_compare("fix_no_read_perm", cmd, tmp_path, + image_path=tmp_iso) + finally: + os.chmod(tmp_iso, 0o644) + + def test_fix_no_write_perm(self, tmp_path): + """Fix fails when image is read-only.""" + raw = _ensure_raw_image() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, tmp_iso) + os.chmod(tmp_iso, 0o400) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + try: + _run_golden_compare("fix_no_write_perm", cmd, tmp_path, + image_path=tmp_iso) + finally: + os.chmod(tmp_iso, 0o644) + + def test_fix_good_image(self, tmp_path): + """Fix already good image.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_good_image", cmd, tmp_path, image_path=tmp_iso) + + def test_fix_truncated_image(self, tmp_path): + """Fix truncated image (REAL_ECCSIZE-210 = 24780 sectors).""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Truncate(REAL_ECCSIZE - 210)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_truncated_image", cmd, tmp_path, image_path=tmp_iso) + + def test_fix_trailing_bytes(self, tmp_path): + """Fix image with trailing garbage bytes appended.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b"some trailing garbage appended for testing\n") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_trailing_bytes", cmd, tmp_path, image_path=tmp_iso) + + def test_fix_trailing_tao(self, tmp_path): + """Fix image with 2 trailing zero sectors (TAO).""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b'\x00' * (2 * 2048)) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_trailing_tao", cmd, tmp_path, image_path=tmp_iso) + + def test_fix_trailing_garbage(self, tmp_path): + """Fix image with 23 trailing zero sectors.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b'\x00' * (23 * 2048)) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_trailing_garbage", cmd, tmp_path, image_path=tmp_iso) + + def test_fix_trailing_garbage2(self, tmp_path): + """Fix image with 23 trailing zero sectors using --truncate.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + with open(tmp_iso, "ab") as f: + f.write(b'\x00' * (23 * 2048)) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", "--truncate", + ] + _run_golden_compare("fix_trailing_garbage2", cmd, tmp_path, image_path=tmp_iso) + + def test_fix_correctable(self, tmp_path): + """Fix image with correctable errors.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Erase("500-524"), + Erase("1000"), + Byteset(2000, 0, 111), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_correctable", cmd, tmp_path, image_path=tmp_iso) + + def test_fix_border_cases_erasures(self, tmp_path): + """Fix image with erasures at border sectors.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Erase("0"), Erase("98"), Erase("196"), Erase("20972"), + Erase("21070"), Erase("21168"), Erase("21266"), Erase("24892"), + Erase("97"), Erase("195"), Erase("293"), Erase("20999"), + Erase("21167"), Erase("21265"), Erase("21363"), Erase("24989"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_border_cases_erasures", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_border_cases_crc_errors(self, tmp_path): + """Fix image with CRC errors at border sectors.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Byteset(0, 0, 1), Byteset(98, 0, 0), Byteset(196, 0, 0), + Byteset(20972, 0, 0), Byteset(21070, 0, 0), Byteset(21168, 0, 0), + Byteset(21266, 0, 0), Byteset(24892, 0, 0), + Byteset(97, 0, 0), Byteset(195, 0, 0), Byteset(293, 0, 0), + Byteset(20999, 0, 0), Byteset(21167, 0, 0), Byteset(21265, 0, 0), + Byteset(21363, 0, 0), Byteset(24989, 0, 0), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_border_cases_crc_errors", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_layer_multiple(self, tmp_path): + """Fix image where ISO size is a layer multiple.""" + raw_path = os.path.join(str(tmp_path), "rs03i-lm-raw.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(raw_path), + "--random-image", "14508", + check=True, + ) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(raw_path), + "-mRS03", "-c", "-n20000", + check=True, + ) + shutil.copy2(raw_path, tmp_iso) + _apply_damage(tmp_iso, [ + Erase("500-524"), + Erase("14510-14520"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_layer_multiple", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_no_padding(self, tmp_path): + """Fix image without padding (ISO size not a layer multiple).""" + raw_path = os.path.join(str(tmp_path), "rs03i-np-raw.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + _run_dvdisaster( + "--regtest", "--debug", + "-i{}".format(raw_path), + "--random-image", "14506", + check=True, + ) + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(raw_path), + "-mRS03", "-c", "-n20000", + check=True, + ) + shutil.copy2(raw_path, tmp_iso) + _apply_damage(tmp_iso, [Erase("500-524")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_no_padding", cmd, tmp_path, image_path=tmp_iso) + + def test_fix_with_rs01_file(self, tmp_path): + """Fix RS03i image with outer RS01 ecc file.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-c", "-n", "normal", + ) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Byteset(24989, 0, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-f", + ] + _run_golden_compare("fix_with_rs01_file", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + + def test_fix_with_rs03_file(self, tmp_path): + """Fix RS03i image with outer RS03f ecc file.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + _run_dvdisaster( + "--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file", + ) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Byteset(24989, 0, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "-f", + ] + _run_golden_compare("fix_with_rs03_file", cmd, tmp_path, + image_path=tmp_iso, ecc_path=tmp_ecc) + + def test_fix_with_missing_header(self, tmp_path): + """Fix image with missing RS03 header sector.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Erase(str(ISOSIZE))]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "-n{}".format(ECCSIZE), + "-f", "-v", + ] + _run_golden_compare("fix_with_missing_header", cmd, tmp_path, + image_path=tmp_iso) + + @pytest.mark.slow + def test_fix_with_missing_iso_header(self, tmp_path): + """Fix image with missing ISO header (sector 16).""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Erase("16")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "-n{}".format(ECCSIZE), + "-f", "-v", + ] + _run_golden_compare("fix_with_missing_iso_header", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_with_ecc_file_header(self, tmp_path): + """Fix image where header has ecc-file bit set.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Byteset(ISOSIZE, 16, 2), + Byteset(ISOSIZE, 96, 142), + Byteset(ISOSIZE, 97, 43), + Byteset(ISOSIZE, 98, 137), + Byteset(ISOSIZE, 99, 29), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "-n{}".format(ECCSIZE), + "-f", "-v", + ] + _run_golden_compare("fix_with_ecc_file_header", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_with_ecc_file_crc_block(self, tmp_path): + """Fix image where CRC block has ecc-file bit set.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Erase(str(ISOSIZE)), + Byteset(21070, 1040, 2), + Byteset(21070, 1120, 208), + Byteset(21070, 1121, 250), + Byteset(21070, 1122, 142), + Byteset(21070, 1123, 101), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "-n{}".format(ECCSIZE), + "-f", "-v", + ] + _run_golden_compare("fix_with_ecc_file_crc_block", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_with_crc_error_in_padding(self, tmp_path): + """Fix image with CRC error in padding area.""" + master = _ensure_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Byteset(21020, 400, 255)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "-n{}".format(ECCSIZE), + "-f", + ] + _run_golden_compare("fix_with_crc_error_in_padding", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_custom_n_good(self, tmp_path): + """Fix already good custom-size image.""" + master = _ensure_custom_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_custom_n_good", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_custom_n_bad_header_with_n(self, tmp_path): + """Fix custom-size image with bad header, providing -n.""" + master = _ensure_custom_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Byteset(ISOSIZE, 1, 1), + Erase("500-524"), + Erase("1000"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "-n{}".format(CUSTOM_ECCSIZE), + "-f", + ] + _run_golden_compare("fix_custom_n_bad_header_with_n", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_custom_n_bad_header_no_n(self, tmp_path): + """Fix custom-size image with bad header, no -n provided.""" + master = _ensure_custom_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Byteset(ISOSIZE, 1, 1), + Erase("500-524"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_custom_n_bad_header_no_n", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_custom_n_bad_header_bruteforce(self, tmp_path): + """Fix custom-size image with bad header using bruteforce search.""" + master = _ensure_custom_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Byteset(ISOSIZE, 1, 1), + Erase("500-524"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--bruteforce-rs03-search", "-f", + ] + _run_golden_compare("fix_custom_n_bad_header_bruteforce", cmd, + tmp_path, image_path=tmp_iso) + + def test_fix_custom_n_truncated_with_n(self, tmp_path): + """Fix truncated custom-size image with bad header, providing -n.""" + master = _ensure_custom_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Byteset(ISOSIZE, 1, 1), + Erase("500-524"), + Truncate(21500), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "-n{}".format(CUSTOM_ECCSIZE), + "-f", + ] + _run_golden_compare("fix_custom_n_truncated_with_n", cmd, tmp_path, + image_path=tmp_iso) + + def test_fix_custom_n_truncated_no_bruteforce(self, tmp_path): + """Fix truncated custom-size image with bad header, no -n, no bruteforce (expected to fail).""" + master = _ensure_custom_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Byteset(ISOSIZE, 1, 1), + Erase("500-524"), + Truncate(21500), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "-f", + ] + _run_golden_compare("fix_custom_n_truncated_no_bruteforce", cmd, + tmp_path, image_path=tmp_iso) + + def test_fix_custom_n_truncated_bruteforce(self, tmp_path): + """Fix truncated custom-size image with bad header using bruteforce.""" + master = _ensure_custom_master() + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [ + Byteset(ISOSIZE, 1, 1), + Erase("500-524"), + Truncate(21500), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--bruteforce-rs03-search", "-f", + ] + _run_golden_compare("fix_custom_n_truncated_bruteforce", cmd, + tmp_path, image_path=tmp_iso) + + +# =========================================================================== +# Scanning tests (33) +# =========================================================================== + +class TestRS03iScan: + + def test_scan_good(self, tmp_path): + """Scan complete / optimal image.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_good", cmd, tmp_path) + + def test_scan_good_verbose(self, tmp_path): + """Scan complete / optimal image, verbose output.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v", + ] + _run_golden_compare("scan_good_verbose", cmd, tmp_path) + + def test_scan_shorter(self, tmp_path): + """Scan image shorter than expected.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Truncate(REAL_ECCSIZE - 44)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_shorter", cmd, tmp_path) + + def test_scan_longer(self, tmp_path): + """Scan image longer than expected.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, times=23) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", "-v", + ] + _run_golden_compare("scan_longer", cmd, tmp_path) + + def test_scan_tao_tail(self, tmp_path): + """Scan image with two multisession link sectors appended (TAO tail).""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, times=1) + _apply_damage(sim_iso, [Erase("24990-24991")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_tao_tail", cmd, tmp_path) + + def test_scan_no_tao_tail(self, tmp_path): + """Scan image with two real sectors missing at end; --dao prevents clipping.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Erase("24988-24989")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", "--dao", + ] + _run_golden_compare("scan_no_tao_tail", cmd, tmp_path) + + def test_scan_incompatible_ecc(self, tmp_path): + """Scan image requiring a newer dvdisaster version.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Byteset(21000, 84, 220), + Byteset(21000, 85, 65), + Byteset(21000, 86, 15), + Byteset(21000, 88, 220), + Byteset(21000, 89, 65), + Byteset(21000, 90, 15), + Byteset(21000, 96, 208), + Byteset(21000, 97, 125), + Byteset(21000, 98, 164), + Byteset(21000, 99, 44), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_incompatible_ecc", cmd, tmp_path, + ignore_line_re=r'^\* $') + + def test_scan_bad_header(self, tmp_path): + """Scan image with a defective ECC header.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(21000, 1, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_bad_header", cmd, tmp_path) + + def test_scan_missing_data_sectors(self, tmp_path): + """Scan image with missing sectors in data portion.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("1000-1049"), + Erase("21230"), + Erase("22450-22457"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_missing_data_sectors", cmd, tmp_path) + + def test_scan_missing_crc_sectors(self, tmp_path): + """Scan image with missing sectors in CRC portion.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("21077"), + Erase("21100-21120"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_missing_crc_sectors", cmd, tmp_path) + + def test_scan_missing_ecc_sectors(self, tmp_path): + """Scan image with missing sectors in ECC portion.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("21200"), + Erase("21340-21365"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_missing_ecc_sectors", cmd, tmp_path) + + def test_scan_data_bad_byte(self, tmp_path): + """Scan image with bad byte in data section.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(1235, 50, 10)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_data_bad_byte", cmd, tmp_path) + + def test_scan_crc_bad_byte(self, tmp_path): + """Scan image with bad byte in CRC section.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(21077, 50, 10)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_crc_bad_byte", cmd, tmp_path) + + def test_scan_ecc_bad_byte(self, tmp_path): + """Scan image with bad byte in ECC section.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(22000, 50, 10)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_ecc_bad_byte", cmd, tmp_path) + + def test_scan_with_rs01_file(self, tmp_path): + """Scan augmented image also protected by outer RS01 ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(24989, 0, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_with_rs01_file", cmd, tmp_path, + ecc_path=tmp_ecc) + + def test_scan_with_wrong_rs01_file(self, tmp_path): + """Scan augmented image with non-matching RS01 ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + _apply_damage(tmp_ecc, [Byteset(0, 24, 1)]) + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(24989, 0, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_with_wrong_rs01_file", cmd, tmp_path, + ecc_path=tmp_ecc) + + def test_scan_with_rs03_file(self, tmp_path): + """Scan augmented image also protected by outer RS03 ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(24989, 0, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_with_rs03_file", cmd, tmp_path, + ecc_path=tmp_ecc) + + def test_scan_with_wrong_rs03_file(self, tmp_path): + """Scan augmented image with non-matching RS03 ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + _apply_damage(tmp_ecc, [Byteset(0, 24, 1)]) + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(24989, 0, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_with_wrong_rs03_file", cmd, tmp_path, + ecc_path=tmp_ecc) + + @pytest.mark.slow + def test_scan_missing_header_not_exhaustive(self, tmp_path): + """Scan large image with missing ECC header; no exhaustive search.""" + large = _ensure_large_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large, sim_iso) + _apply_damage(sim_iso, [Erase(str(LMI_HEADER))]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-s", + ] + _run_golden_compare("scan_missing_header_not_exhaustive", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_missing_header(self, tmp_path): + """Scan large image with missing ECC header; exhaustive search.""" + large = _ensure_large_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large, sim_iso) + _apply_damage(sim_iso, [Erase(str(LMI_HEADER))]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_missing_header", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_missing_header2(self, tmp_path): + """Scan large image with missing header; first slice has damaged CRC+sectors.""" + large = _ensure_large_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large, sim_iso) + + damage = [Erase(str(LMI_HEADER)), Erase(str(LMI_FIRSTCRC))] + for i in range(120 * LMI_LAYER_SIZE, 136 * LMI_LAYER_SIZE, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + _apply_damage(sim_iso, damage) + + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_missing_header2", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_missing_header3(self, tmp_path): + """Scan large image with missing header; first few slices have damaged CRC sectors.""" + large = _ensure_large_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large, sim_iso) + + damage = [Erase(str(LMI_HEADER))] + # slice 0 + damage.append(Erase(str(LMI_FIRSTCRC))) + for i in range(100 * LMI_LAYER_SIZE, 236 * LMI_LAYER_SIZE, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 1 + damage.append(Byteset(LMI_FIRSTCRC + 1, 500, 0)) + for i in range(110 * LMI_LAYER_SIZE + 1, 141 * LMI_LAYER_SIZE + 1, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 2 + damage.append(Erase(str(LMI_FIRSTCRC + 2))) + for i in range(110 * LMI_LAYER_SIZE + 2, 141 * LMI_LAYER_SIZE + 2, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 3 + damage.append(Byteset(LMI_FIRSTCRC + 3, 500, 0)) + for i in range(110 * LMI_LAYER_SIZE + 3, 140 * LMI_LAYER_SIZE + 3, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 4 + damage.append(Erase(str(LMI_FIRSTCRC + 4))) + _apply_damage(sim_iso, damage) + + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_missing_header3", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_missing_header4(self, tmp_path): + """Scan large image with missing header; every CRC sector except last is unreadable.""" + large = _ensure_large_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large, sim_iso) + + damage = [Erase(str(LMI_HEADER))] + # slice 0 + damage.append(Erase(str(LMI_FIRSTCRC))) + for i in range(100 * LMI_LAYER_SIZE, 236 * LMI_LAYER_SIZE, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 1 + damage.append(Byteset(LMI_FIRSTCRC + 1, 500, 0)) + for i in range(110 * LMI_LAYER_SIZE + 1, 141 * LMI_LAYER_SIZE + 1, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 2 + damage.append(Erase(str(LMI_FIRSTCRC + 2))) + for i in range(110 * LMI_LAYER_SIZE + 2, 141 * LMI_LAYER_SIZE + 2, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slice 3 + damage.append(Byteset(LMI_FIRSTCRC + 3, 500, 0)) + for i in range(110 * LMI_LAYER_SIZE + 3, 140 * LMI_LAYER_SIZE + 3, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + # slices 4-1407 + damage.append(Erase("{}-{}".format(LMI_FIRSTCRC + 4, LMI_FIRSTCRC + 1407))) + _apply_damage(sim_iso, damage) + + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_missing_header4", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_missing_header_truncated(self, tmp_path): + """Scan truncated large image with missing header (like header2 but truncated).""" + large = _ensure_large_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large, sim_iso) + + damage = [Erase(str(LMI_HEADER)), Erase(str(LMI_FIRSTCRC))] + for i in range(120 * LMI_LAYER_SIZE, 136 * LMI_LAYER_SIZE, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + damage.append(Truncate(300000)) + _apply_damage(sim_iso, damage) + + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_missing_header_truncated", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_missing_header_no_crcsec(self, tmp_path): + """Scan large image with missing header and all CRC sectors deleted.""" + large = _ensure_large_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large, sim_iso) + _apply_damage(sim_iso, [ + Erase(str(LMI_HEADER)), + Erase("{}-{}".format(LMI_FIRSTCRC, LMI_FIRSTCRC + 1408)), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_missing_header_no_crcsec", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_random_image(self, tmp_path): + """Scan completely random image (no ECC).""" + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + _run_dvdisaster("--debug", "-i{}".format(sim_iso), + "--random-image", "359295") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_random_image", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_rediscover_8_roots(self, tmp_path): + """Scan 8-root image with no ECC header (single missing sector).""" + raw = _ensure_raw_lmi246() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, sim_iso) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS03", "-c", "-x", "2") + _apply_damage(sim_iso, [Erase("346612")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_rediscover_8_roots", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_rediscover_8_roots2(self, tmp_path): + """Scan 8-root image with no ECC header (header and some CRC sectors missing).""" + raw = _ensure_raw_lmi246() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, sim_iso) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS03", "-c", "-x", "2") + _apply_damage(sim_iso, [Erase("346612-346620")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_rediscover_8_roots2", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_rediscover_170_roots(self, tmp_path): + """Scan 170-root image with no ECC header (single missing sector).""" + raw = _ensure_raw_lmi84() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, sim_iso) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS03", "-c", "-x", "2") + _apply_damage(sim_iso, [Erase("118354")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_rediscover_170_roots", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_rediscover_170_roots2(self, tmp_path): + """Scan 170-root image with no ECC header (header and some CRC sectors missing).""" + raw = _ensure_raw_lmi84() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, sim_iso) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS03", "-c", "-x", "2") + _apply_damage(sim_iso, [Erase("118354-118360")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_rediscover_170_roots2", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_rediscover_170_roots_padding(self, tmp_path): + """Scan 170-root padded image with ECC header present.""" + raw = _ensure_raw_lmi84s() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, sim_iso) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS03", "-c", "-x", "2") + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_rediscover_170_roots-padding", cmd, tmp_path) + + @pytest.mark.slow + def test_scan_rediscover_170_roots_padding2(self, tmp_path): + """Scan 170-root padded image with no ECC header and some CRC sectors missing.""" + raw = _ensure_raw_lmi84s() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(raw, sim_iso) + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(sim_iso), "-mRS03", "-c", "-x", "2") + _apply_damage(sim_iso, [Erase("112354"), Erase("118356-118360")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", "-v", + ] + _run_golden_compare("scan_rediscover_170_roots-padding2", cmd, tmp_path) + + def test_scan_with_crc_error_in_padding(self, tmp_path): + """Scan image with CRC error in padding area.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(21020, 400, 255)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-a", "RS03", "-s", + ] + _run_golden_compare("scan_with_crc_error_in_padding", cmd, tmp_path) + + +# =========================================================================== +# Reading tests (linear) (29) +# =========================================================================== + +class TestRS03iReadLinear: + + def test_read_good(self, tmp_path): + """Read complete / optimal image.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_good", cmd, tmp_path, image_path=tmp_iso) + + def test_read_good_verbose(self, tmp_path): + """Read complete / optimal image, verbose output.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + ] + _run_golden_compare("read_good_verbose", cmd, tmp_path, image_path=tmp_iso) + + def test_read_good_file(self, tmp_path): + """Read into existing and complete image file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + shutil.copy2(master, tmp_iso) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_good_file", cmd, tmp_path, image_path=tmp_iso) + + def test_read_shorter(self, tmp_path): + """Read image shorter than expected.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Truncate(REAL_ECCSIZE - 44)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_shorter", cmd, tmp_path, image_path=tmp_iso) + + def test_read_longer(self, tmp_path): + """Read image longer than expected; returns image in original length.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, times=23) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", + ] + _run_golden_compare("read_longer", cmd, tmp_path, image_path=tmp_iso) + + def test_read_tao_tail(self, tmp_path): + """Read image with two multisession link sectors appended (TAO tail).""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, times=1) + _apply_damage(sim_iso, [Erase("24990-24991")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_tao_tail", cmd, tmp_path, image_path=tmp_iso) + + def test_read_no_tao_tail(self, tmp_path): + """Read image with two real sectors missing at end; --dao prevents clipping.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _append_fixed_random_sequence(sim_iso, times=1) + _apply_damage(sim_iso, [Erase("24988-24989")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "--dao", + ] + _run_golden_compare("read_no_tao_tail", cmd, tmp_path, image_path=tmp_iso) + + def test_read_incompatible_ecc(self, tmp_path): + """Read image requiring a newer dvdisaster version.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Byteset(21000, 84, 220), + Byteset(21000, 85, 65), + Byteset(21000, 86, 15), + Byteset(21000, 88, 220), + Byteset(21000, 89, 65), + Byteset(21000, 90, 15), + Byteset(21000, 96, 208), + Byteset(21000, 97, 125), + Byteset(21000, 98, 164), + Byteset(21000, 99, 44), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_incompatible_ecc", cmd, tmp_path, + image_path=tmp_iso, ignore_line_re=r'^\* $') + + def test_read_bad_header(self, tmp_path): + """Read image with a defective ECC header; treated as ECC-less.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(21000, 1, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_bad_header", cmd, tmp_path, image_path=tmp_iso) + + def test_read_bad_header_exhaustive(self, tmp_path): + """Read image with a defective ECC header; exhaustive search enabled.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(21000, 1, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--debug", "--spinup-delay=0", "-r", "-v", "-aRS03", + "-n{}".format(ECCSIZE), + ] + _run_golden_compare("read_bad_header_exhaustive", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_missing_data_sectors(self, tmp_path): + """Read image with missing sectors in data portion.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("1000-1049"), + Erase("21230"), + Erase("22450-22457"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_missing_data_sectors", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_missing_crc_sectors(self, tmp_path): + """Read image with missing sectors in CRC portion.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("21077"), + Erase("21100-21120"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_missing_crc_sectors", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_missing_ecc_sectors(self, tmp_path): + """Read image with missing sectors in ECC portion.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("21200"), + Erase("21340-21365"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_missing_ecc_sectors", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_missing_iso_header(self, tmp_path): + """Read image with missing ISO header; exhaustive search, verbose.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Erase("16")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", "-aRS03", "-n{}".format(ECCSIZE), + ] + _run_golden_compare("read_missing_iso_header", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_data_bad_byte(self, tmp_path): + """Read image with bad bytes in data section.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Byteset(0, 50, 10), + Byteset(1235, 50, 10), + Byteset(20999, 50, 10), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_data_bad_byte", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_crc_bad_byte(self, tmp_path): + """Read image with bad byte in CRC section.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(21077, 50, 10)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_crc_bad_byte", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_ecc_bad_byte(self, tmp_path): + """Read image with bad byte in ECC section.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(22000, 50, 10)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_ecc_bad_byte", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_with_rs01_file(self, tmp_path): + """Read augmented image protected by outer RS01 ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(24989, 0, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_with_rs01_file", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_with_wrong_rs01_file(self, tmp_path): + """Read augmented image with non-matching RS01 ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-c", "-n", "normal") + _apply_damage(tmp_ecc, [Byteset(0, 24, 1)]) + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(24989, 0, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_with_wrong_rs01_file", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_with_rs03_file(self, tmp_path): + """Read augmented image protected by outer RS03 ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(24989, 0, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_with_rs03_file", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_with_wrong_rs03_file(self, tmp_path): + """Read augmented image with non-matching RS03 ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + tmp_ecc = os.path.join(str(tmp_path), "rs03i-tmp.ecc") + _run_dvdisaster("--regtest", "--debug", "--set-version", SETVERSION, + "-i{}".format(master), "-e{}".format(tmp_ecc), + "-mRS03", "-c", "-n", "20r", "-o", "file") + _apply_damage(tmp_ecc, [Byteset(0, 24, 1)]) + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(24989, 0, 1)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), "-e{}".format(tmp_ecc), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_with_wrong_rs03_file", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_crc_section_with_uncorrectable_dsm(self, tmp_path): + """Read augmented image with uncorrectable dead sector markers in CRC area.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("21077:pass as dead sector marker"), + Erase("21081:pass as dead sector marker"), + Erase("21082:pass as dead sector marker"), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_crc_section_with_uncorrectable_dsm", cmd, + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_read_with_missing_header(self, tmp_path): + """Read large image with missing ECC header; no exhaustive search.""" + large = _ensure_large_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large, sim_iso) + damage = [Erase(str(LMI_HEADER)), Erase(str(LMI_FIRSTCRC))] + for i in range(120 * LMI_LAYER_SIZE, 136 * LMI_LAYER_SIZE, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + _apply_damage(sim_iso, damage) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_with_missing_header", cmd, tmp_path, + image_path=tmp_iso) + + @pytest.mark.slow + def test_read_with_missing_header_exhaustive(self, tmp_path): + """Read large image with missing ECC header; exhaustive search.""" + large = _ensure_large_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large, sim_iso) + damage = [Erase(str(LMI_HEADER)), Erase(str(LMI_FIRSTCRC))] + for i in range(120 * LMI_LAYER_SIZE, 136 * LMI_LAYER_SIZE, LMI_LAYER_SIZE): + damage.append(Erase(str(i))) + _apply_damage(sim_iso, damage) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", "-a", "RS03", + ] + _run_golden_compare("read_with_missing_header_exhaustive", cmd, + tmp_path, image_path=tmp_iso) + + @pytest.mark.slow + def test_read_with_missing_iso_header_exhaustive(self, tmp_path): + """Read large image with missing ISO header; exhaustive search.""" + large = _ensure_large_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(large, sim_iso) + _apply_damage(sim_iso, [Erase("16")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", "-a", "RS03", + ] + _run_golden_compare("read_with_missing_iso_header_exhaustive", cmd, + tmp_path, image_path=tmp_iso) + + def test_read_with_ecc_file_header(self, tmp_path): + """Read image with ECC header from an ecc file (ecc file bit set).""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Byteset(21000, 16, 2), + Byteset(21000, 96, 142), + Byteset(21000, 97, 43), + Byteset(21000, 98, 137), + Byteset(21000, 99, 29), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", "-a", "RS03", "-n", str(ECCSIZE), + ] + _run_golden_compare("read_with_ecc_file_header", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_with_ecc_file_crc_block(self, tmp_path): + """Read image with defective ECC header and CRC block from an ecc file.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [ + Erase("21000"), + Byteset(21070, 1040, 2), + Byteset(21070, 1120, 208), + Byteset(21070, 1121, 250), + Byteset(21070, 1122, 142), + Byteset(21070, 1123, 101), + ]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", "-v", "-a", "RS03", "-n", str(ECCSIZE), + ] + _run_golden_compare("read_with_ecc_file_crc_block", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_second_pass_with_crc_error(self, tmp_path): + """Re-read incomplete image to verify CRC errors are still detected.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(15830, 8, 3)]) + shutil.copy2(master, tmp_iso) + _apply_damage(tmp_iso, [Erase("15800-16199")]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_second_pass_with_crc_error", cmd, tmp_path, + image_path=tmp_iso) + + def test_read_with_crc_error_in_padding(self, tmp_path): + """Read image with CRC error in padding area.""" + master = _ensure_master() + sim_iso = os.path.join(str(tmp_path), "sim.iso") + tmp_iso = os.path.join(str(tmp_path), "rs03i-tmp.iso") + shutil.copy2(master, sim_iso) + _apply_damage(sim_iso, [Byteset(21020, 400, 255)]) + cmd = [ + "--regtest", "--no-progress", + "-i{}".format(tmp_iso), + "--debug", "--sim-cd={}".format(sim_iso), "--fixed-speed-values", + "--spinup-delay=0", "-r", + ] + _run_golden_compare("read_with_crc_error_in_padding", cmd, tmp_path, + image_path=tmp_iso)