Lines Matching +full:string +full:- +full:array +full:- +full:property

6 #include "libqtest-single.h"
15 resp = qmp("{'execute': 'query-cpus-fast', 'arguments': {}}"); in get_cpu0_qom_path()
20 path = g_strdup(qdict_get_str(cpu0, "qom-path")); in get_cpu0_qom_path()
27 QDict *resp = qmp("{ 'execute': 'qom-get'," in qom_get()
29 " 'property': %s } }", in qom_get()
48 const char *property; member
59 qtest_start(args->cmdline); in test_cpuid_prop()
61 value = qobject_to(QNum, qom_get(path, args->property)); in test_cpuid_prop()
63 g_assert_cmpint(val, ==, args->expected_value); in test_cpuid_prop()
72 const char *property, int64_t expected_value) in add_cpuid_test() argument
81 cmdline = g_strdup_printf("-cpu %s", cpu); in add_cpuid_test()
90 cmdline = g_strdup_printf("-machine %s %s", machine, cmdline); in add_cpuid_test()
93 args->cmdline = cmdline; in add_cpuid_test()
94 args->property = property; in add_cpuid_test()
95 args->expected_value = expected_value; in add_cpuid_test()
105 * cpuid-input-eax and cpuid-input-ecx values to look for,
106 * in "feature-words" and "filtered-features" properties.
109 /* The register name to look for, in the X86CPUFeatureWordInfo array */
125 const char *rreg = qdict_get_str(w, "cpuid-register"); in get_feature_word()
126 uint32_t reax = qdict_get_int(w, "cpuid-input-eax"); in get_feature_word()
127 bool has_ecx = qdict_haskey(w, "cpuid-input-ecx"); in get_feature_word()
132 recx = qdict_get_int(w, "cpuid-input-ecx"); in get_feature_word()
151 qtest_start(args->cmdline); in test_feature_flag()
153 present = qobject_to(QList, qom_get(path, "feature-words")); in test_feature_flag()
154 filtered = qobject_to(QList, qom_get(path, "filtered-features")); in test_feature_flag()
155 value = get_feature_word(present, args->in_eax, args->in_ecx, args->reg); in test_feature_flag()
156 value |= get_feature_word(filtered, args->in_eax, args->in_ecx, args->reg); in test_feature_flag()
159 g_assert(!!(value & (1U << args->bitnr)) == args->expected_value); in test_feature_flag()
168 * either "feature-words" or "filtered-features", when running QEMU
184 cmdline = g_strdup_printf("-cpu %s,%s", cpu, cpufeat); in add_feature_test()
186 cmdline = g_strdup_printf("-cpu %s", cpu); in add_feature_test()
189 args->cmdline = cmdline; in add_feature_test()
190 args->in_eax = eax; in add_feature_test()
191 args->in_ecx = ecx; in add_feature_test()
192 args->reg = reg; in add_feature_test()
193 args->bitnr = bitnr; in add_feature_test()
194 args->expected_value = expected_value; in add_feature_test()
207 * 1)"-foo" overrides "+foo" in test_plus_minus_subprocess()
208 * 2) "[+-]foo" overrides "foo=..." in test_plus_minus_subprocess()
215 qtest_start("-cpu pentium,-fpu,+fpu,-mce,mce=on,+cx8,cx8=off,+sse4_1,sse4_2=on"); in test_plus_minus_subprocess()
223 g_assert_true(qom_get_bool(path, "sse4-1")); in test_plus_minus_subprocess()
226 g_assert_true(qom_get_bool(path, "sse4-2")); in test_plus_minus_subprocess()
239 g_test_trap_subprocess("/x86/cpuid/parsing-plus-minus/subprocess", 0, 0); in test_plus_minus()
241 g_test_trap_assert_stderr("*Ambiguous CPU model string. " in test_plus_minus()
242 "Don't mix both \"-mce\" and \"mce=on\"*"); in test_plus_minus()
243 g_test_trap_assert_stderr("*Ambiguous CPU model string. " in test_plus_minus()
252 g_test_add_func("/x86/cpuid/parsing-plus-minus/subprocess", in main()
254 g_test_add_func("/x86/cpuid/parsing-plus-minus", test_plus_minus); in main()
274 add_cpuid_test("x86/cpuid/auto-level/486/arat", in main()
277 add_cpuid_test("x86/cpuid/auto-level/phenom/fsgsbase", in main()
280 add_cpuid_test("x86/cpuid/auto-level/phenom/avx512vbmi", in main()
283 add_cpuid_test("x86/cpuid/auto-level/phenom/xsaveopt", in main()
286 add_cpuid_test("x86/cpuid/auto-xlevel/486/3dnow", in main()
289 add_cpuid_test("x86/cpuid/auto-xlevel/486/sse4a", in main()
292 add_cpuid_test("x86/cpuid/auto-xlevel/486/invtsc", in main()
295 add_cpuid_test("x86/cpuid/auto-xlevel/486/npt", in main()
298 add_cpuid_test("x86/cpuid/auto-xlevel2/phenom/xstore", in main()
301 add_cpuid_test("x86/cpuid/auto-xlevel/athlon/svm", in main()
306 add_cpuid_test("x86/cpuid/auto-level/SandyBridge/multiple", in main()
310 add_cpuid_test("x86/cpuid/auto-level/486/fixed/0xF", in main()
314 add_cpuid_test("x86/cpuid/auto-level/486/fixed/2", in main()
318 add_cpuid_test("x86/cpuid/auto-level/486/fixed/0", in main()
324 add_cpuid_test("x86/cpuid/auto-xlevel/phenom/3dnow", in main()
328 add_cpuid_test("x86/cpuid/auto-xlevel/486/fixed/80000002", in main()
332 add_cpuid_test("x86/cpuid/auto-xlevel/486/fixed/8000001A", in main()
336 add_cpuid_test("x86/cpuid/auto-xlevel/phenom/fixed/0", in main()
342 add_cpuid_test("x86/cpuid/auto-xlevel2/486/fixed", in main()
346 /* Check compatibility of old machine-types that didn't in main()
347 * auto-increase level/xlevel/xlevel2: */ in main()
348 if (qtest_has_machine("pc-i440fx-2.7")) { in main()
349 add_cpuid_test("x86/cpuid/auto-level/pc-2.7", in main()
351 "pc-i440fx-2.7", "level", 1); in main()
352 add_cpuid_test("x86/cpuid/auto-xlevel/pc-2.7", in main()
354 "pc-i440fx-2.7", "xlevel", 0); in main()
355 add_cpuid_test("x86/cpuid/auto-xlevel2/pc-2.7", in main()
356 "486", "xstore=on", "pc-i440fx-2.7", in main()
359 if (qtest_has_machine("pc-i440fx-2.9")) { in main()
360 add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.9/off", in main()
361 "Conroe", NULL, "pc-i440fx-2.9", in main()
363 add_cpuid_test("x86/cpuid/auto-level7/pc-i440fx-2.9/on", in main()
364 "Conroe", "erms=on", "pc-i440fx-2.9", in main()
373 "pentium", "-mmx", in main()
382 add_feature_test("x86/cpuid/features/max-plus-invtsc", in main()
385 add_feature_test("x86/cpuid/features/max-invtsc-on", in main()
388 add_feature_test("x86/cpuid/features/max-minus-mmx", in main()
389 "max", "-mmx", in main()
391 add_feature_test("x86/cpuid/features/max-invtsc-on,mmx=off", in main()