1
0
mirror of https://github.com/MariaDB/server.git synced 2026-10-23 18:49:29 +03:00
Files
mariadb/.github/workflows/windows-arm64.yml
Vladislav Vaintroub 4cb930bbf8 MDEV-37739 Fix remaining test cases in parts suite on case-insensitive FS
1. Relax InnoDB rename assertion for partitions

row_rename_table_for_mysql() asserted that RENAME_IGNORE_FK is never
used to rename a table to a temporary name:

    ut_ad(fk != RENAME_IGNORE_FK || !new_is_tmp);

But EXCHANGE PARTITION renames a partition to a temporary #sql-exchange
name, and during DDL-log recovery with lower_case_table_names=1 this
reaches the partition retry in innobase_rename_table(), which passes
RENAME_IGNORE_FK.  So relax the assertion for partition names.
This fixes an assertion failure in parts.partition_debug_innodb during
crash recovery; debug-only change.

2. Fix diff in parts.alter_table

Guard the lower_case_table_names combinations in include/lcase_names.inc
with the matching include/have_lowercaseN.inc,
so each is skipped unless the server actually ended up in that mode.
mtr can be run (and on one CI machine is run) with a forced
--mysqld=--lower_case_table_names, and the server does not always
honour the request (=2 is reset to 0 on a case-sensitive filesystem).
The "def" combination assumed lower_case_table_names=0; make that
explicit and rename it to lcase0 for symmetry with lcase1/lcase2.  It
stays an empty combination, since an explicit =0 would make the server
refuse to start on a case-insensitive filesystem.

3. Make sure the parts suite is actually tested on CI on case-insensitive
filesystem

add it to buildbot_suites.bat. In addition, test on case-sensitive NTFS
directory (Github Actions builder)
2026-07-03 14:03:44 +02:00

56 lines
1.8 KiB
YAML

name: Build on Windows ARM64
on:
push:
branches:
- 'main'
- 'bb-*'
- '[0-9]+.[0-9]+'
- '*wlad*'
pull_request:
jobs:
build:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
runs-on: windows-11-arm
steps:
- name: Configure git
run: |
# We won't be able to successfully run mtr
# unless we configure autocrlf.
git config --global core.autocrlf input
- uses: actions/checkout@v6
- name: Install prerequisites
run: |
# Install bison to compile
choco install winflexbison3
- name: Build
run: |
# speedup checkout by excluding uninteresting modules
git config submodule.storage/columnstore/columnstore.update none
git config submodule.storage/maria/libmarias3.update none
git config submodule.storage/rocksdb/rocksdb.update none
git config submodule.wsrep-lib.update none
mkdir bld
cd bld
cmake .. -DWITH_SSL=bundled
cmake --build . --config RelWithDebinfo --verbose -- -m
- name: Test MTR
run: |
$env:PATH = "C:\Strawberry\perl\bin;$env:PATH;C:\Program Files (x86)\Windows Kits\10\Debuggers\arm64"
$parallel = 2
# create case-sensitive directory to run tests in
$tmp = (Get-Item $env:TEMP).FullName
$tmp = $tmp -replace '\\','/'
$cidir = "$tmp/ci"
mkdir $cidir
fsutil file setCaseSensitiveInfo $cidir enable
perl bld\mysql-test\mysql-test-run.pl --force --parallel=$parallel --suite=main,innodb,parts --vardir=$cidir/var --skip-rpl --mysqld=--lower-case-table-names=0 --mysqld=--loose-innodb-flush-log-at-trx-commit=2 --mysqld=--debug-no-sync --skip-test=innodb-virtual-columns