123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- #include "test/jemalloc_test.h"
- #include "test/bench.h"
- static void
- mallctl_short(void) {
- const char *version;
- size_t sz = sizeof(version);
- int err = mallctl("version", &version, &sz, NULL, 0);
- assert_d_eq(err, 0, "mallctl failure");
- }
- size_t mib_short[1];
- static void
- mallctlbymib_short(void) {
- size_t miblen = sizeof(mib_short)/sizeof(mib_short[0]);
- const char *version;
- size_t sz = sizeof(version);
- int err = mallctlbymib(mib_short, miblen, &version, &sz, NULL, 0);
- assert_d_eq(err, 0, "mallctlbymib failure");
- }
- TEST_BEGIN(test_mallctl_vs_mallctlbymib_short) {
- size_t miblen = sizeof(mib_short)/sizeof(mib_short[0]);
- int err = mallctlnametomib("version", mib_short, &miblen);
- assert_d_eq(err, 0, "mallctlnametomib failure");
- compare_funcs(10*1000*1000, 10*1000*1000, "mallctl_short",
- mallctl_short, "mallctlbymib_short", mallctlbymib_short);
- }
- TEST_END
- static void
- mallctl_long(void) {
- uint64_t nmalloc;
- size_t sz = sizeof(nmalloc);
- int err = mallctl("stats.arenas.0.bins.0.nmalloc", &nmalloc, &sz, NULL,
- 0);
- assert_d_eq(err, 0, "mallctl failure");
- }
- size_t mib_long[6];
- static void
- mallctlbymib_long(void) {
- size_t miblen = sizeof(mib_long)/sizeof(mib_long[0]);
- uint64_t nmalloc;
- size_t sz = sizeof(nmalloc);
- int err = mallctlbymib(mib_long, miblen, &nmalloc, &sz, NULL, 0);
- assert_d_eq(err, 0, "mallctlbymib failure");
- }
- TEST_BEGIN(test_mallctl_vs_mallctlbymib_long) {
- /*
- * We want to use the longest mallctl we have; that needs stats support
- * to be allowed.
- */
- test_skip_if(!config_stats);
- size_t miblen = sizeof(mib_long)/sizeof(mib_long[0]);
- int err = mallctlnametomib("stats.arenas.0.bins.0.nmalloc", mib_long,
- &miblen);
- assert_d_eq(err, 0, "mallctlnametomib failure");
- compare_funcs(10*1000*1000, 10*1000*1000, "mallctl_long",
- mallctl_long, "mallctlbymib_long", mallctlbymib_long);
- }
- TEST_END
- int
- main(void) {
- return test_no_reentrancy(
- test_mallctl_vs_mallctlbymib_short,
- test_mallctl_vs_mallctlbymib_long);
- }
|