lunar-date icon indicating copy to clipboard operation
lunar-date copied to clipboard

测试 testing 程序,对 LANGUAGE 环境变量处理异常

Open atzlinux opened this issue 3 years ago • 2 comments

操作系统 Debian 11

1.当 LANGUAGE 环境变量 为 空时,测试程序正常。

unset LANGUAGE;./testing
# random seed: R02S3fb5d545fb09cfd26e43c5f2b20c6fae
1..4
# Start of date tests
ok 1 /date/solar
ok 2 /date/lunar
ok 3 /date/holiday
# Start of holiday tests
ok 4 /date/holiday/custom
# End of holiday tests
# End of date tests

2.当 LANGUAGE 环境变量 为中文 zh_CN 时,测试程序正常。

export LANGUAGE=zh_CN;./testing
# random seed: R02S0dca562337f54666052de5c407744956
1..4
# Start of date tests
ok 1 /date/solar
ok 2 /date/lunar
ok 3 /date/holiday
# Start of holiday tests
ok 4 /date/holiday/custom
# End of holiday tests
# End of date tests

3.当 LANGUAGE 环境变量 既不为空,也不为 中文 zh_CN 时,测试程序异常报错。 比如说,设置 LANGUAGE 为标准的 C:

export LANGUAGE=C;./testing
# random seed: R02Se0c59ed76a34c8ae88ab6b1c1bc798f0
1..4
# Start of date tests
ok 1 /date/solar
**
ERROR:../tests/testing.c:226:test_lunar_date: assertion failed (lunar_array[i].raw_value == value): ("\345\233\275\345\272\206\350\212\202" == "")
Bail out! ERROR:../tests/testing.c:226:test_lunar_date: assertion failed (lunar_array[i].raw_value == value): ("\345\233\275\345\272\206\350\212\202" == "")
Aborted

设置 LANGUAGE 为 en_US:en

export LANGUAGE=en_US:en;./testing
# random seed: R02Se4c359ee85686df4bbe1c12fac15069f
1..4
# Start of date tests
ok 1 /date/solar
**
ERROR:../tests/testing.c:226:test_lunar_date: assertion failed (lunar_array[i].raw_value == value): ("\345\233\275\345\272\206\350\212\202" == "")
Bail out! ERROR:../tests/testing.c:226:test_lunar_date: assertion failed (lunar_array[i].raw_value == value): ("\345\233\275\345\272\206\350\212\202" == "")
Aborted

在 Debian 的 CI/CD 上,也有这个报错: https://salsa.debian.org/chinese-team/lunar-date/-/jobs/2218863

atzlinux avatar Dec 06 '21 09:12 atzlinux

devel branch 9ff7dfad 修复了这个报错。

但是在以上语言环境的测试中,输出少了如下两项测试:

ok 3 /date/holiday
# Start of holiday tests
ok 4 /date/holiday/custom
# End of holiday tests

有办法在非中文的 LANGUAGE 下,完成这两个测试吗? 希望能够在不同语言环境变量下,测试项、测试内容保持一致,这样也有利于该项目的国际化。

atzlinux avatar Dec 19 '21 02:12 atzlinux

这 2 个测试依赖于 mo 文件内容,在非中文环境下没有对应的 mo。

yetist avatar Jan 02 '22 10:01 yetist