dawn/common: Handle zero input in RoundUp function

The RoundUp function previously asserted that n > 0.
This change allows n = 0 as input, returning 0 as the result.

Change-Id: I48c0a04becb9d5b9b75c08a68805524739f797c6
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/257474
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/common/Math.cpp b/src/dawn/common/Math.cpp
index c896cce..49864e8 100644
--- a/src/dawn/common/Math.cpp
+++ b/src/dawn/common/Math.cpp
@@ -129,7 +129,6 @@
 
 uint64_t RoundUp(uint64_t n, uint64_t m) {
     DAWN_ASSERT(m > 0);
-    DAWN_ASSERT(n > 0);
     DAWN_ASSERT(m <= std::numeric_limits<uint64_t>::max() - n);
     return ((n + m - 1) / m) * m;
 }
diff --git a/src/dawn/tests/unittests/MathTests.cpp b/src/dawn/tests/unittests/MathTests.cpp
index 79c3a7d..43ec498 100644
--- a/src/dawn/tests/unittests/MathTests.cpp
+++ b/src/dawn/tests/unittests/MathTests.cpp
@@ -346,20 +346,33 @@
 
 // Tests for RoundUp
 TEST(Math, RoundUp) {
+    // Test with n = 0
+    ASSERT_EQ(RoundUp(0u, 1u), 0u);
+    ASSERT_EQ(RoundUp(0u, 2u), 0u);
+    ASSERT_EQ(RoundUp(0u, 4u), 0u);
+    ASSERT_EQ(RoundUp(0u, 8u), 0u);
+    ASSERT_EQ(RoundUp(0u, 1000u), 0u);
+
+    // Test with n > 0, already multiples
     ASSERT_EQ(RoundUp(2u, 2u), 2u);
-    ASSERT_EQ(RoundUp(2u, 4u), 4u);
     ASSERT_EQ(RoundUp(6u, 2u), 6u);
     ASSERT_EQ(RoundUp(8u, 4u), 8u);
     ASSERT_EQ(RoundUp(12u, 6u), 12u);
-
     ASSERT_EQ(RoundUp(3u, 3u), 3u);
+
+    // Test with n > 0, not multiples
+    ASSERT_EQ(RoundUp(2u, 4u), 4u);
     ASSERT_EQ(RoundUp(3u, 5u), 5u);
     ASSERT_EQ(RoundUp(5u, 3u), 6u);
     ASSERT_EQ(RoundUp(9u, 5u), 10u);
 
+    // Test with m = 1 (should return n unchanged)
+    ASSERT_EQ(RoundUp(1u, 1u), 1u);
+    ASSERT_EQ(RoundUp(2u, 1u), 2u);
+    ASSERT_EQ(RoundUp(100u, 1u), 100u);
+
     // Test extrema
     ASSERT_EQ(RoundUp(0x7FFFFFFFFFFFFFFFull, 0x8000000000000000ull), 0x8000000000000000ull);
-    ASSERT_EQ(RoundUp(1u, 1u), 1u);
 }
 
 // Tests for IsSubset