xref: /xnu-8796.101.5/tests/nvram_tests/nvram_system.c (revision aca3beaa3dfbd42498b42c5e5ce20a938e6554e5)
1*aca3beaaSApple OSS Distributions #include <darwintest.h>
2*aca3beaaSApple OSS Distributions #include "nvram_helper.h"
3*aca3beaaSApple OSS Distributions 
4*aca3beaaSApple OSS Distributions T_GLOBAL_META(T_META_NAMESPACE("xnu.nvram"),
5*aca3beaaSApple OSS Distributions     T_META_RADAR_COMPONENT_NAME("xnu"),
6*aca3beaaSApple OSS Distributions     T_META_RADAR_COMPONENT_VERSION("nvram"));
7*aca3beaaSApple OSS Distributions 
8*aca3beaaSApple OSS Distributions static io_registry_entry_t optionsRef = IO_OBJECT_NULL;
9*aca3beaaSApple OSS Distributions 
10*aca3beaaSApple OSS Distributions // xcrun -sdk macosx.internal make -C tests nvram_system && sudo ./tests/build/sym/nvram_system
11*aca3beaaSApple OSS Distributions 
12*aca3beaaSApple OSS Distributions // Test that writing, reading, and deleting of system variables with system entitlement should succeed
13*aca3beaaSApple OSS Distributions T_DECL(TestSystemEntitled, "Test system guids with entitlement")
14*aca3beaaSApple OSS Distributions {
15*aca3beaaSApple OSS Distributions #if ((TARGET_OS_OSX) && !(__x86_64__))
16*aca3beaaSApple OSS Distributions 	const char *varToTest = "40A0DDD2-77F8-4392-B4A3-1E7304206516:varToTest2";
17*aca3beaaSApple OSS Distributions 
18*aca3beaaSApple OSS Distributions 	optionsRef = GetOptions();
19*aca3beaaSApple OSS Distributions 
20*aca3beaaSApple OSS Distributions 	T_ASSERT_EQ(SetVariable(varToTest, "1234", optionsRef), KERN_SUCCESS, "Set variable %s successfully\n", varToTest);
21*aca3beaaSApple OSS Distributions 	T_ASSERT_EQ(GetVariable(varToTest, optionsRef), KERN_SUCCESS, "Read variable %s successfully\n", varToTest);
22*aca3beaaSApple OSS Distributions 	T_ASSERT_EQ(DeleteVariable(varToTest, optionsRef), KERN_SUCCESS, "Deleted variable %s successfully\n", varToTest);
23*aca3beaaSApple OSS Distributions 
24*aca3beaaSApple OSS Distributions 	ReleaseOptions(optionsRef);
25*aca3beaaSApple OSS Distributions #else
26*aca3beaaSApple OSS Distributions 	T_PASS("Test not supported");
27*aca3beaaSApple OSS Distributions #endif /* ((TARGET_OS_OSX) && !(__x86_64__)) */
28*aca3beaaSApple OSS Distributions }
29