Files
MeowOS-For-R3P2/patch_v2/meow_launcherd/test_settings_brightness.c
T

74 lines
3.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* test_settings_brightness.c — M2.86 宿主测试:settings.conf「未读到」vs「已读到」的亮度语义。
*
* 直接 #include "meow_settings.c"(同 TU 平移其 static 常量/函数,与 test_notif_tf.c 把
* meow_notif.c 平移进 TU 的既有模式一致);编译期用 -DMEOW_SETTINGS_FILE 覆盖存储路径
* (meow_settings.c 注释即声明该宏可编译期覆盖,宿主可直接测)。
*
* 验证的核心(开机亮度停在 100 的根因修复):
* 1) meow_settings_loaded()==0:settings.conf 不可读(S70 早启动 /usr/data 未就绪)→
* apply_user_brightness 必须据此挂起,而不是把 display.brightness 默认 101→clamp 100 盲目写盘。
* 2) meow_settings_loaded()==1:文件读到 → 用户设定/键缺失默认可信。
* 3) meow_settings_brightness_clamped() 的回退语义:文件缺失时确实回退 100(危险值),
* 但此时 loaded()==0 才是调用方要不要写盘的判据。
*/
#include "meow_settings.c"
#include <assert.h>
#include <stdio.h>
#include <unistd.h>
int main(void)
{
const char *conf = MEOW_SETTINGS_FILE; /* 编译期覆盖的路径(需为可写临时文件路径) */
FILE *f;
/* 场景 A:/usr/data 未就绪 → 文件不存在 → loaded==0,clamp 回退 100(危险值,但 loaded==0 提示调用方挂起) */
unlink(conf);
assert(meow_settings_init() == MEOW_OK);
assert(meow_settings_loaded() == 0);
int v = meow_settings_brightness_clamped();
assert(v == 100);
printf("[A] file absent : loaded=%d brightness_clamped=%d (expect 0 / 100)\n",
meow_settings_loaded(), v);
/* 场景 B:文件存在且用户设 60 → loaded==1,clamp 60(用户设定可信) */
f = fopen(conf, "w");
assert(f);
fprintf(f, "# meow-settings 1\ndisplay.brightness=60\ndisplay.brightness_min=1\n");
fclose(f);
assert(meow_settings_init() == MEOW_OK);
assert(meow_settings_loaded() == 1);
v = meow_settings_brightness_clamped();
assert(v == 60);
printf("[B] file =60 : loaded=%d brightness_clamped=%d (expect 1 / 60)\n",
meow_settings_loaded(), v);
/* 场景 C:文件存在但键缺失(仅注释/头)→ loaded==1,默认 101→clamp 100(「已读到→键缺失走默认」) */
f = fopen(conf, "w");
assert(f);
fprintf(f, "# meow-settings 1\n");
fclose(f);
assert(meow_settings_init() == MEOW_OK);
assert(meow_settings_loaded() == 1);
v = meow_settings_brightness_clamped();
assert(v == 100);
printf("[C] file no key : loaded=%d brightness_clamped=%d (expect 1 / 100)\n",
meow_settings_loaded(), v);
/* 场景 D:文件存在但持久值 101 → clamp 到 100(防闪屏上限,M2.39) */
f = fopen(conf, "w");
assert(f);
fprintf(f, "display.brightness=101\ndisplay.brightness_min=1\n");
fclose(f);
assert(meow_settings_init() == MEOW_OK);
assert(meow_settings_loaded() == 1);
v = meow_settings_brightness_clamped();
assert(v == 100);
printf("[D] file =101 : loaded=%d brightness_clamped=%d (expect 1 / 100)\n",
meow_settings_loaded(), v);
unlink(conf);
printf("ALL PASS\n");
return 0;
}