Merge tag 'wireless-next-2024-03-08' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-block.git] / net / wireless / tests / fragmentation.c
index 49a339ca888078544ace329f04b2484e2f060b0e..411fae18cd8825cbc4396bd65bb2256006060bf0 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * KUnit tests for element fragmentation
  *
- * Copyright (C) 2023 Intel Corporation
+ * Copyright (C) 2023-2024 Intel Corporation
  */
 #include <linux/ieee80211.h>
 #include <net/cfg80211.h>
@@ -27,7 +27,12 @@ static void defragment_0(struct kunit *test)
 
        ret = cfg80211_defragment_element((void *)input,
                                          input, sizeof(input),
-                                         data, sizeof(input),
+                                         NULL, 0,
+                                         WLAN_EID_FRAGMENT);
+       KUNIT_EXPECT_EQ(test, ret, 253);
+       ret = cfg80211_defragment_element((void *)input,
+                                         input, sizeof(input),
+                                         data, ret,
                                          WLAN_EID_FRAGMENT);
        KUNIT_EXPECT_EQ(test, ret, 253);
        KUNIT_EXPECT_MEMEQ(test, data, input + 3, 253);
@@ -63,7 +68,12 @@ static void defragment_1(struct kunit *test)
 
        ret = cfg80211_defragment_element((void *)input,
                                          input, sizeof(input),
-                                         data, sizeof(input),
+                                         NULL, 0,
+                                         WLAN_EID_FRAGMENT);
+       KUNIT_EXPECT_EQ(test, ret, 254 + 7);
+       ret = cfg80211_defragment_element((void *)input,
+                                         input, sizeof(input),
+                                         data, ret,
                                          WLAN_EID_FRAGMENT);
        /* this means the last fragment was not used */
        KUNIT_EXPECT_EQ(test, ret, 254 + 7);
@@ -106,10 +116,15 @@ static void defragment_2(struct kunit *test)
 
        ret = cfg80211_defragment_element((void *)input,
                                          input, sizeof(input),
-                                         data, sizeof(input),
+                                         NULL, 0,
                                          WLAN_EID_FRAGMENT);
        /* this means the last fragment was not used */
        KUNIT_EXPECT_EQ(test, ret, 254 + 255 + 1);
+       ret = cfg80211_defragment_element((void *)input,
+                                         input, sizeof(input),
+                                         data, ret,
+                                         WLAN_EID_FRAGMENT);
+       KUNIT_EXPECT_EQ(test, ret, 254 + 255 + 1);
        KUNIT_EXPECT_MEMEQ(test, data, input + 3, 254);
        KUNIT_EXPECT_MEMEQ(test, data + 254, input + 257 + 2, 255);
        KUNIT_EXPECT_MEMEQ(test, data + 254 + 255, input + 2 * 257 + 2, 1);
@@ -134,7 +149,12 @@ static void defragment_at_end(struct kunit *test)
 
        ret = cfg80211_defragment_element((void *)input,
                                          input, sizeof(input),
-                                         data, sizeof(input),
+                                         NULL, 0,
+                                         WLAN_EID_FRAGMENT);
+       KUNIT_EXPECT_EQ(test, ret, 254 + 7);
+       ret = cfg80211_defragment_element((void *)input,
+                                         input, sizeof(input),
+                                         data, ret,
                                          WLAN_EID_FRAGMENT);
        KUNIT_EXPECT_EQ(test, ret, 254 + 7);
        KUNIT_EXPECT_MEMEQ(test, data, input + 3, 254);