1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:57:35 +00:00

Kernel/Ext2: Write superblock backups

We don't ever read them out, but this should make fsck a lot less mad.
This commit is contained in:
kleines Filmröllchen 2023-07-18 17:38:04 +02:00 committed by Jelle Raaijmakers
parent cc1cb72fb5
commit a0705202ea
4 changed files with 54 additions and 2 deletions

View file

@ -7,6 +7,7 @@
#include <LibTest/TestCase.h>
#include <AK/IntegralMath.h>
#include <initializer_list>
TEST_CASE(pow)
{
@ -18,3 +19,20 @@ TEST_CASE(pow)
EXPECT_EQ(AK::pow<u64>(10, 5), 100'000ull);
EXPECT_EQ(AK::pow<u64>(10, 6), 1'000'000ull);
}
TEST_CASE(is_power_of)
{
constexpr auto check_prime = []<u64 prime>(u64 limit) {
for (u64 power = 0; power < limit; ++power)
EXPECT(AK::is_power_of<prime>(AK::pow(prime, power)));
};
// Limits calculated as floor( log_{prime}(2^64) ) to prevent overflows.
check_prime.operator()<2>(64);
check_prime.operator()<3>(40);
check_prime.operator()<5>(27);
check_prime.operator()<7>(20);
check_prime.operator()<11>(18);
check_prime.operator()<97>(9);
check_prime.operator()<257>(7);
}