1a74702c6SGeorge Wang/* Copyright (c) 2017 - 2022 LiteSpeed Technologies Inc. See LICENSE. */ 250aadb33SDmitri Tikhonov#include <assert.h> 350aadb33SDmitri Tikhonov 450aadb33SDmitri Tikhonov#include "lsquic_arr.h" 550aadb33SDmitri Tikhonov 650aadb33SDmitri Tikhonovstatic void 750aadb33SDmitri Tikhonovtest1 (void) 850aadb33SDmitri Tikhonov{ 950aadb33SDmitri Tikhonov struct lsquic_arr arr; 1050aadb33SDmitri Tikhonov lsquic_arr_init(&arr); 1150aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ecba0); 1250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eccb0); 1350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ecdb0); 1450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ece90); 1550aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ecf70); 1650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed0e0); 1750aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed1e0); 1850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed2c0); 1950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed3a0); 2050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed510); 2150aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed5d0); 2250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed6b0); 2350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed7b0); 2450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed890); 2550aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed970); 2650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eda50); 2750aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ec450); 2850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ec510); 2950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee210); 3050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee310); 3150aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee3f0); 3250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee4e0); 3350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee5f0); 3450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee6d0); 3550aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21edb50); 3650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21edb90); 3750aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eea20); 3850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eeb00); 3950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ec790); 4050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ec870); 4150aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ec990); 4250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eca70); 4350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ecb50); 4450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee820); 4550aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee860); 4650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ef830); 4750aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ef930); 4850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21efa30); 4950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21efb40); 5050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21efc20); 5150aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ef470); 5250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ef530); 5350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eff40); 5450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21f0020); 5550aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21f0100); 5650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21f0200); 5750aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21f02c0); 5850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21f03d0); 5950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21efd20); 6050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21efe00); 6150aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21edc30); 6250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21edd10); 6350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eddf0); 6450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21edf00); 6550aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee000); 6650aadb33SDmitri Tikhonov assert(0x21ecba0 == lsquic_arr_shift(&arr)); 6750aadb33SDmitri Tikhonov assert(0x21eccb0 == lsquic_arr_shift(&arr)); 6850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eccb0); 6950aadb33SDmitri Tikhonov assert(0x21ecdb0 == lsquic_arr_shift(&arr)); 7050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ecdb0); 7150aadb33SDmitri Tikhonov assert(0x21ece90 == lsquic_arr_shift(&arr)); 7250aadb33SDmitri Tikhonov assert(0x21ecf70 == lsquic_arr_shift(&arr)); 7350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ecf70); 7450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ece90); 7550aadb33SDmitri Tikhonov assert(0x21ed0e0 == lsquic_arr_shift(&arr)); 7650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed0e0); 7750aadb33SDmitri Tikhonov assert(0x21ed1e0 == lsquic_arr_shift(&arr)); 7850aadb33SDmitri Tikhonov assert(0x21ed2c0 == lsquic_arr_shift(&arr)); 7950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed2c0); 8050aadb33SDmitri Tikhonov assert(0x21ed3a0 == lsquic_arr_shift(&arr)); 8150aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed3a0); 8250aadb33SDmitri Tikhonov assert(0x21ed510 == lsquic_arr_shift(&arr)); 8350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed510); 8450aadb33SDmitri Tikhonov assert(0x21ed5d0 == lsquic_arr_shift(&arr)); 8550aadb33SDmitri Tikhonov assert(0x21ed6b0 == lsquic_arr_shift(&arr)); 8650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed6b0); 8750aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed5f0); 8850aadb33SDmitri Tikhonov assert(0x21ed7b0 == lsquic_arr_shift(&arr)); 8950aadb33SDmitri Tikhonov assert(0x21ed890 == lsquic_arr_shift(&arr)); 9050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed890); 9150aadb33SDmitri Tikhonov assert(0x21ed970 == lsquic_arr_shift(&arr)); 9250aadb33SDmitri Tikhonov assert(0x21eda50 == lsquic_arr_shift(&arr)); 9350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eda50); 9450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ed990); 9550aadb33SDmitri Tikhonov assert(0x21ec450 == lsquic_arr_shift(&arr)); 9650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ec450); 9750aadb33SDmitri Tikhonov assert(0x21ec510 == lsquic_arr_shift(&arr)); 9850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ec510); 9950aadb33SDmitri Tikhonov assert(0x21ee210 == lsquic_arr_shift(&arr)); 10050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee210); 10150aadb33SDmitri Tikhonov assert(0x21ee310 == lsquic_arr_shift(&arr)); 10250aadb33SDmitri Tikhonov assert(0x21ee3f0 == lsquic_arr_shift(&arr)); 10350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee3f0); 10450aadb33SDmitri Tikhonov assert(0x21ee4e0 == lsquic_arr_shift(&arr)); 10550aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee4e0); 10650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee330); 10750aadb33SDmitri Tikhonov assert(0x21ee5f0 == lsquic_arr_shift(&arr)); 10850aadb33SDmitri Tikhonov assert(0x21ee6d0 == lsquic_arr_shift(&arr)); 10950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee6d0); 11050aadb33SDmitri Tikhonov assert(0x21edb50 == lsquic_arr_shift(&arr)); 11150aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21edb50); 11250aadb33SDmitri Tikhonov assert(0x21edb90 == lsquic_arr_shift(&arr)); 11350aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21edb90); 11450aadb33SDmitri Tikhonov assert(0x21eea20 == lsquic_arr_shift(&arr)); 11550aadb33SDmitri Tikhonov assert(0x21eeb00 == lsquic_arr_shift(&arr)); 11650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eeb00); 11750aadb33SDmitri Tikhonov assert(0x21ec790 == lsquic_arr_shift(&arr)); 11850aadb33SDmitri Tikhonov assert(0x21ec870 == lsquic_arr_shift(&arr)); 11950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ec870); 12050aadb33SDmitri Tikhonov assert(0x21ec990 == lsquic_arr_shift(&arr)); 12150aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ec990); 12250aadb33SDmitri Tikhonov assert(0x21eca70 == lsquic_arr_shift(&arr)); 12350aadb33SDmitri Tikhonov assert(0x21ecb50 == lsquic_arr_shift(&arr)); 12450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ecb50); 12550aadb33SDmitri Tikhonov assert(0x21ee820 == lsquic_arr_shift(&arr)); 12650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee820); 12750aadb33SDmitri Tikhonov assert(0x21ee860 == lsquic_arr_shift(&arr)); 12850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ee860); 12950aadb33SDmitri Tikhonov assert(0x21ef830 == lsquic_arr_shift(&arr)); 13050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ef830); 13150aadb33SDmitri Tikhonov assert(0x21ef930 == lsquic_arr_shift(&arr)); 13250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ef930); 13350aadb33SDmitri Tikhonov assert(0x21efa30 == lsquic_arr_shift(&arr)); 13450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21efa30); 13550aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eca90); 13650aadb33SDmitri Tikhonov assert(0x21efb40 == lsquic_arr_shift(&arr)); 13750aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21efb40); 13850aadb33SDmitri Tikhonov assert(0x21efc20 == lsquic_arr_shift(&arr)); 13950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21efc20); 14050aadb33SDmitri Tikhonov assert(0x21ef470 == lsquic_arr_shift(&arr)); 14150aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ef470); 14250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ec7d0); 14350aadb33SDmitri Tikhonov assert(0x21ef530 == lsquic_arr_shift(&arr)); 14450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21ef530); 14550aadb33SDmitri Tikhonov assert(0x21eff40 == lsquic_arr_shift(&arr)); 14650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21eff40); 14750aadb33SDmitri Tikhonov assert(0x21f0020 == lsquic_arr_shift(&arr)); 14850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21f0020); 14950aadb33SDmitri Tikhonov assert(0x21f0100 == lsquic_arr_shift(&arr)); 15050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21f0100); 15150aadb33SDmitri Tikhonov assert(0x21f0200 == lsquic_arr_shift(&arr)); 15250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21f0200); 15350aadb33SDmitri Tikhonov assert(0x21f02c0 == lsquic_arr_shift(&arr)); 15450aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21f02c0); 15550aadb33SDmitri Tikhonov assert(0x21f03d0 == lsquic_arr_shift(&arr)); 15650aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21f03d0); 15750aadb33SDmitri Tikhonov assert(0x21efd20 == lsquic_arr_shift(&arr)); 15850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21efd20); 15950aadb33SDmitri Tikhonov assert(0x21efe00 == lsquic_arr_shift(&arr)); 16050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21efe00); 16150aadb33SDmitri Tikhonov assert(0x21edc30 == lsquic_arr_shift(&arr)); 16250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 0x21edc30); 16350aadb33SDmitri Tikhonov assert(0x21edd10 == lsquic_arr_shift(&arr)); 16450aadb33SDmitri Tikhonov assert(0x21eddf0 == lsquic_arr_shift(&arr)); 16550aadb33SDmitri Tikhonov lsquic_arr_cleanup(&arr); 16650aadb33SDmitri Tikhonov} 16750aadb33SDmitri Tikhonov 16850aadb33SDmitri Tikhonov 16950aadb33SDmitri Tikhonovint 17050aadb33SDmitri Tikhonovmain (void) 17150aadb33SDmitri Tikhonov{ 17250aadb33SDmitri Tikhonov struct lsquic_arr arr; 17350aadb33SDmitri Tikhonov uintptr_t val; 17450aadb33SDmitri Tikhonov 17550aadb33SDmitri Tikhonov lsquic_arr_init(&arr); 17650aadb33SDmitri Tikhonov 17750aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 1); 17850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 2); 17950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 3); 18050aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 4); 18150aadb33SDmitri Tikhonov 18250aadb33SDmitri Tikhonov assert(4 == lsquic_arr_count(&arr)); 18350aadb33SDmitri Tikhonov 18450aadb33SDmitri Tikhonov val = lsquic_arr_get(&arr, 0); 18550aadb33SDmitri Tikhonov assert(1 == val); 18650aadb33SDmitri Tikhonov val = lsquic_arr_get(&arr, 3); 18750aadb33SDmitri Tikhonov assert(4 == val); 18850aadb33SDmitri Tikhonov 18950aadb33SDmitri Tikhonov val = lsquic_arr_shift(&arr); 19050aadb33SDmitri Tikhonov 19150aadb33SDmitri Tikhonov assert(1 == val); 19250aadb33SDmitri Tikhonov assert(3 == lsquic_arr_count(&arr)); 19350aadb33SDmitri Tikhonov 19450aadb33SDmitri Tikhonov val = lsquic_arr_shift(&arr); 19550aadb33SDmitri Tikhonov assert(2 == val); 19650aadb33SDmitri Tikhonov val = lsquic_arr_shift(&arr); 19750aadb33SDmitri Tikhonov assert(3 == val); 19850aadb33SDmitri Tikhonov assert(1 == lsquic_arr_count(&arr)); 19950aadb33SDmitri Tikhonov val = lsquic_arr_get(&arr, 0); 20050aadb33SDmitri Tikhonov assert(4 == val); 20150aadb33SDmitri Tikhonov 20250aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 5); 20350aadb33SDmitri Tikhonov val = lsquic_arr_get(&arr, 0); 20450aadb33SDmitri Tikhonov assert(4 == val); 20550aadb33SDmitri Tikhonov assert(2 == lsquic_arr_count(&arr)); 20650aadb33SDmitri Tikhonov 20750aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 6); 20850aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 7); 20950aadb33SDmitri Tikhonov lsquic_arr_push(&arr, 8); 21050aadb33SDmitri Tikhonov assert(5 == lsquic_arr_count(&arr)); 21150aadb33SDmitri Tikhonov assert(4 == lsquic_arr_shift(&arr)); 21250aadb33SDmitri Tikhonov assert(5 == lsquic_arr_shift(&arr)); 21350aadb33SDmitri Tikhonov assert(6 == lsquic_arr_shift(&arr)); 21450aadb33SDmitri Tikhonov assert(7 == lsquic_arr_shift(&arr)); 21550aadb33SDmitri Tikhonov assert(8 == lsquic_arr_shift(&arr)); 21650aadb33SDmitri Tikhonov assert(0 == lsquic_arr_count(&arr)); 21750aadb33SDmitri Tikhonov 21850aadb33SDmitri Tikhonov lsquic_arr_cleanup(&arr); 21950aadb33SDmitri Tikhonov 22050aadb33SDmitri Tikhonov test1(); 22150aadb33SDmitri Tikhonov 22250aadb33SDmitri Tikhonov return 0; 22350aadb33SDmitri Tikhonov} 224