1
0
mirror of https://github.com/tw93/Mole.git synced 2026-02-04 12:41:46 +00:00

feat: Improve CJK character width calculation, enhance SQLite vacuum test robustness, and update security audit documentation for core cleaning and optimization logic.

This commit is contained in:
Tw93
2025-12-28 21:29:10 +08:00
parent 87feab7df3
commit 44685d3999
3 changed files with 13 additions and 1 deletions

View File

@@ -146,6 +146,8 @@ func coloredProgressBar(value, max int64, percent float64) string {
func runeWidth(r rune) int {
if r >= 0x4E00 && r <= 0x9FFF ||
r >= 0x3400 && r <= 0x4DBF ||
r >= 0x3040 && r <= 0x30FF ||
r >= 0x31F0 && r <= 0x31FF ||
r >= 0xAC00 && r <= 0xD7AF ||
r >= 0xFF00 && r <= 0xFFEF {
return 2

View File

@@ -14,7 +14,7 @@ func TestRuneWidth(t *testing.T) {
{"ASCII letter", 'a', 1},
{"ASCII digit", '5', 1},
{"Chinese character", '中', 2},
{"Japanese hiragana", 'あ', 1}, // BUG: Should be 2, but current implementation returns 1
{"Japanese hiragana", 'あ', 2},
{"Korean hangul", '한', 2},
{"CJK ideograph", '語', 2},
{"Full-width number", '', 2},

View File

@@ -511,7 +511,12 @@ EOF
# Tests for SQLite VACUUM optimization (v1.15.2)
# ============================================================================
skip_if_no_sqlite3() {
command -v sqlite3 > /dev/null 2>&1 || skip "sqlite3 not available"
}
@test "opt_sqlite_vacuum optimizes Safari databases" {
skip_if_no_sqlite3
# Create test databases
mkdir -p "$HOME/Library/Safari"
@@ -544,6 +549,7 @@ EOF
}
@test "opt_sqlite_vacuum checks database integrity before VACUUM" {
skip_if_no_sqlite3
mkdir -p "$HOME/Library/Safari"
# Clean up and create database
@@ -582,6 +588,7 @@ EOF
}
@test "opt_sqlite_vacuum skips databases in use" {
skip_if_no_sqlite3
mkdir -p "$HOME/Library/Safari"
rm -f "$HOME/Library/Safari/History.db"
sqlite3 "$HOME/Library/Safari/History.db" "CREATE TABLE test(id INTEGER);"
@@ -616,6 +623,7 @@ EOF
}
@test "opt_sqlite_vacuum checks disk space before VACUUM" {
skip_if_no_sqlite3
mkdir -p "$HOME/Library/Safari"
# Clean up and create a 2MB database
@@ -665,6 +673,7 @@ EOF
}
@test "opt_sqlite_vacuum skips non-SQLite files" {
skip_if_no_sqlite3
mkdir -p "$HOME/Library/Safari"
# Create a non-SQLite file
@@ -686,6 +695,7 @@ EOF
}
@test "opt_sqlite_vacuum verifies integrity after VACUUM" {
skip_if_no_sqlite3
mkdir -p "$HOME/Library/Safari"
rm -f "$HOME/Library/Safari/History.db"
sqlite3 "$HOME/Library/Safari/History.db" "CREATE TABLE test(id INTEGER); INSERT INTO test VALUES(1);"