mirror of
https://github.com/tw93/Mole.git
synced 2026-02-12 07:04:00 +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:
@@ -146,6 +146,8 @@ func coloredProgressBar(value, max int64, percent float64) string {
|
|||||||
func runeWidth(r rune) int {
|
func runeWidth(r rune) int {
|
||||||
if r >= 0x4E00 && r <= 0x9FFF ||
|
if r >= 0x4E00 && r <= 0x9FFF ||
|
||||||
r >= 0x3400 && r <= 0x4DBF ||
|
r >= 0x3400 && r <= 0x4DBF ||
|
||||||
|
r >= 0x3040 && r <= 0x30FF ||
|
||||||
|
r >= 0x31F0 && r <= 0x31FF ||
|
||||||
r >= 0xAC00 && r <= 0xD7AF ||
|
r >= 0xAC00 && r <= 0xD7AF ||
|
||||||
r >= 0xFF00 && r <= 0xFFEF {
|
r >= 0xFF00 && r <= 0xFFEF {
|
||||||
return 2
|
return 2
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ func TestRuneWidth(t *testing.T) {
|
|||||||
{"ASCII letter", 'a', 1},
|
{"ASCII letter", 'a', 1},
|
||||||
{"ASCII digit", '5', 1},
|
{"ASCII digit", '5', 1},
|
||||||
{"Chinese character", '中', 2},
|
{"Chinese character", '中', 2},
|
||||||
{"Japanese hiragana", 'あ', 1}, // BUG: Should be 2, but current implementation returns 1
|
{"Japanese hiragana", 'あ', 2},
|
||||||
{"Korean hangul", '한', 2},
|
{"Korean hangul", '한', 2},
|
||||||
{"CJK ideograph", '語', 2},
|
{"CJK ideograph", '語', 2},
|
||||||
{"Full-width number", '1', 2},
|
{"Full-width number", '1', 2},
|
||||||
|
|||||||
@@ -511,7 +511,12 @@ EOF
|
|||||||
# Tests for SQLite VACUUM optimization (v1.15.2)
|
# 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" {
|
@test "opt_sqlite_vacuum optimizes Safari databases" {
|
||||||
|
skip_if_no_sqlite3
|
||||||
# Create test databases
|
# Create test databases
|
||||||
mkdir -p "$HOME/Library/Safari"
|
mkdir -p "$HOME/Library/Safari"
|
||||||
|
|
||||||
@@ -544,6 +549,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "opt_sqlite_vacuum checks database integrity before VACUUM" {
|
@test "opt_sqlite_vacuum checks database integrity before VACUUM" {
|
||||||
|
skip_if_no_sqlite3
|
||||||
mkdir -p "$HOME/Library/Safari"
|
mkdir -p "$HOME/Library/Safari"
|
||||||
|
|
||||||
# Clean up and create database
|
# Clean up and create database
|
||||||
@@ -582,6 +588,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "opt_sqlite_vacuum skips databases in use" {
|
@test "opt_sqlite_vacuum skips databases in use" {
|
||||||
|
skip_if_no_sqlite3
|
||||||
mkdir -p "$HOME/Library/Safari"
|
mkdir -p "$HOME/Library/Safari"
|
||||||
rm -f "$HOME/Library/Safari/History.db"
|
rm -f "$HOME/Library/Safari/History.db"
|
||||||
sqlite3 "$HOME/Library/Safari/History.db" "CREATE TABLE test(id INTEGER);"
|
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" {
|
@test "opt_sqlite_vacuum checks disk space before VACUUM" {
|
||||||
|
skip_if_no_sqlite3
|
||||||
mkdir -p "$HOME/Library/Safari"
|
mkdir -p "$HOME/Library/Safari"
|
||||||
|
|
||||||
# Clean up and create a 2MB database
|
# Clean up and create a 2MB database
|
||||||
@@ -665,6 +673,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "opt_sqlite_vacuum skips non-SQLite files" {
|
@test "opt_sqlite_vacuum skips non-SQLite files" {
|
||||||
|
skip_if_no_sqlite3
|
||||||
mkdir -p "$HOME/Library/Safari"
|
mkdir -p "$HOME/Library/Safari"
|
||||||
|
|
||||||
# Create a non-SQLite file
|
# Create a non-SQLite file
|
||||||
@@ -686,6 +695,7 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "opt_sqlite_vacuum verifies integrity after VACUUM" {
|
@test "opt_sqlite_vacuum verifies integrity after VACUUM" {
|
||||||
|
skip_if_no_sqlite3
|
||||||
mkdir -p "$HOME/Library/Safari"
|
mkdir -p "$HOME/Library/Safari"
|
||||||
rm -f "$HOME/Library/Safari/History.db"
|
rm -f "$HOME/Library/Safari/History.db"
|
||||||
sqlite3 "$HOME/Library/Safari/History.db" "CREATE TABLE test(id INTEGER); INSERT INTO test VALUES(1);"
|
sqlite3 "$HOME/Library/Safari/History.db" "CREATE TABLE test(id INTEGER); INSERT INTO test VALUES(1);"
|
||||||
|
|||||||
Reference in New Issue
Block a user