Loading...
--- xnu/xnu-12377.121.6/tests/queue.c
+++ xnu/xnu-11215.41.3/tests/queue.c
@@ -77,143 +77,3 @@
queue_enter(&head, &elems[2], struct qe_t2 *, link);
check_queue(&head, (int[]){ 2, 1, 3, }, 3);
}
-
-T_DECL(queue_type2_extend, "test extending type 2 queues")
-{
- static queue_head_t head1;
- static queue_head_t head2;
- static struct qe_t2 elems[8];
- struct qe_t2 *e;
-
- queue_init(&head1);
- queue_init(&head2);
-
- // Build first queue with elements A, B, C, D (values 1-4)
- for (int i = 0; i < 4; i++) {
- e = &elems[i];
- e->a = e->b = i + 1;
- queue_enter(&head1, e, struct qe_t2 *, link);
- }
- check_queue(&head1, (int[]){ 1, 2, 3, 4, }, 4);
- T_PASS("built first queue (1, 2, 3, 4)");
-
- // Build second queue with elements E, F, G, H (values 5-8)
- for (int i = 4; i < 8; i++) {
- e = &elems[i];
- e->a = e->b = i + 1;
- queue_enter(&head2, e, struct qe_t2 *, link);
- }
- check_queue(&head2, (int[]){ 5, 6, 7, 8, }, 4);
- T_PASS("built second queue (5, 6, 7, 8)");
-
- // Append second queue to first
- queue_extend_last(&head1, &head2, struct qe_t2 *, link);
-
- // Verify the combined queue contains all elements in correct order
- check_queue(&head1, (int[]){ 1, 2, 3, 4, 5, 6, 7, 8, }, 8);
- T_PASS("appended second queue to first (1, 2, 3, 4, 5, 6, 7, 8)");
-
- // Verify second queue is now empty
- T_EXPECT_TRUE(queue_empty(&head2), "source queue should be empty after append");
-
- // Test case: append non-empty queue to an empty queue
- // head2 is now empty, rebuild it with elements 1-3
- for (int i = 0; i < 3; i++) {
- e = &elems[i];
- queue_enter(&head2, e, struct qe_t2 *, link);
- }
- static queue_head_t head3;
- queue_init(&head3);
- T_EXPECT_TRUE(queue_empty(&head3), "head3 should start empty");
-
- queue_extend_last(&head3, &head2, struct qe_t2 *, link);
- check_queue(&head3, (int[]){ 1, 2, 3, }, 3);
- T_PASS("appending non-empty queue to empty queue works");
- T_EXPECT_TRUE(queue_empty(&head2), "source queue should be empty after append");
-
- // Test case: append empty queue to non-empty queue
- // head2 is empty, head3 has elements 1-3
- T_EXPECT_TRUE(queue_empty(&head2), "head2 should be empty");
- queue_extend_last(&head3, &head2, struct qe_t2 *, link);
- check_queue(&head3, (int[]){ 1, 2, 3, }, 3);
- T_PASS("appending empty queue to non-empty queue leaves destination unchanged");
- T_EXPECT_TRUE(queue_empty(&head2), "source queue should remain empty");
-
- // Test case: append empty queue to empty queue
- static queue_head_t head4;
- queue_init(&head4);
- queue_extend_last(&head4, &head2, struct qe_t2 *, link);
- T_EXPECT_TRUE(queue_empty(&head4), "destination queue should remain empty");
- T_EXPECT_TRUE(queue_empty(&head2), "source queue should remain empty");
- T_PASS("appending empty queue to empty queue leaves both queues empty");
-}
-
-T_DECL(queue_type2_prepend, "test prepending type 2 queues")
-{
- static queue_head_t head1;
- static queue_head_t head2;
- static struct qe_t2 elems[8];
- struct qe_t2 *e;
-
- queue_init(&head1);
- queue_init(&head2);
-
- // Build first queue with elements A, B, C, D (values 1-4)
- for (int i = 0; i < 4; i++) {
- e = &elems[i];
- e->a = e->b = i + 1;
- queue_enter(&head1, e, struct qe_t2 *, link);
- }
- check_queue(&head1, (int[]){ 1, 2, 3, 4, }, 4);
- T_PASS("built first queue (1, 2, 3, 4)");
-
- // Build second queue with elements E, F, G, H (values 5-8)
- for (int i = 4; i < 8; i++) {
- e = &elems[i];
- e->a = e->b = i + 1;
- queue_enter(&head2, e, struct qe_t2 *, link);
- }
- check_queue(&head2, (int[]){ 5, 6, 7, 8, }, 4);
- T_PASS("built second queue (5, 6, 7, 8)");
-
- // Prepend second queue to first
- queue_extend_first(&head1, &head2, struct qe_t2 *, link);
-
- // Verify the combined queue contains all elements in correct order (prepended, so 5-8 comes before 1-4)
- check_queue(&head1, (int[]){ 5, 6, 7, 8, 1, 2, 3, 4, }, 8);
- T_PASS("prepended second queue to first (5, 6, 7, 8, 1, 2, 3, 4)");
-
- // Verify second queue is now empty
- T_ASSERT_TRUE(queue_empty(&head2), "source queue should be empty after prepend");
-
- // Test case: prepend non-empty queue to an empty queue
- // head2 is now empty, rebuild it with elements 1-3
- for (int i = 0; i < 3; i++) {
- e = &elems[i];
- queue_enter(&head2, e, struct qe_t2 *, link);
- }
- static queue_head_t head3;
- queue_init(&head3);
- T_ASSERT_TRUE(queue_empty(&head3), "head3 should start empty");
-
- queue_extend_first(&head3, &head2, struct qe_t2 *, link);
- check_queue(&head3, (int[]){ 1, 2, 3, }, 3);
- T_PASS("prepending non-empty queue to empty queue works (1, 2, 3)");
- T_EXPECT_TRUE(queue_empty(&head2), "source queue should be empty after prepend");
-
- // Test case: prepend empty queue to non-empty queue
- // head2 is empty, head3 has elements 1-3
- T_ASSERT_TRUE(queue_empty(&head2), "head2 should be empty");
- queue_extend_first(&head3, &head2, struct qe_t2 *, link);
- check_queue(&head3, (int[]){ 1, 2, 3, }, 3);
- T_PASS("prepending empty queue to non-empty queue leaves destination unchanged");
- T_EXPECT_TRUE(queue_empty(&head2), "source queue should remain empty");
-
- // Test case: prepend empty queue to empty queue
- static queue_head_t head4;
- queue_init(&head4);
- queue_extend_first(&head4, &head2, struct qe_t2 *, link);
- T_EXPECT_TRUE(queue_empty(&head4), "destination queue should remain empty");
- T_EXPECT_TRUE(queue_empty(&head2), "source queue should remain empty");
- T_PASS("prepending empty queue to empty queue leaves both queues empty");
-}