!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux acloudg.aryanict.com 4.18.0-513.9.1.lve.el8.x86_64 #1 SMP Mon Dec 4 15:01:22 UTC
2023 x86_64
 

uid=1095(katebhospital) gid=1098(katebhospital) groups=1098(katebhospital) 

Safe-mode: OFF (not secure)

/opt/cpanel/ea-ruby27/src/passenger-release-6.0.23/test/cxx/DataStructures/   drwxr-xr-x
Free 289.66 GB of 429.69 GB (67.41%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     LStringTest.cpp (11.09 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#include <TestSupport.h>
#include <DataStructures/LString.h>
#include <MemoryKit/palloc.h>

using namespace Passenger;
using namespace std;

namespace tut {
    struct DataStructures_LStringTest: public TestBase {
        LString str, str2;
        psg_pool_t *pool;

        DataStructures_LStringTest() {
            psg_lstr_init(&str);
            psg_lstr_init(&str2);
            pool = psg_create_pool(PSG_DEFAULT_POOL_SIZE);
        }

        ~DataStructures_LStringTest() {
            psg_lstr_deinit(&str);
            psg_lstr_deinit(&str2);
            psg_destroy_pool(pool);
        }

        void reset() {
            psg_lstr_deinit(&str);
            psg_lstr_deinit(&str2);
            psg_lstr_init(&str);
            psg_lstr_init(&str2);
        }
    };

    DEFINE_TEST_GROUP(DataStructures_LStringTest);

    TEST_METHOD(1) {
        set_test_name("It is empty upon initialization");
        ensure_equals(str.size, 0u);
        ensure_equals<void *>(str.start, &emptyLStringPart);
        ensure_equals<void *>(str.start->next, NULL);
        ensure_equals<StaticString>(str.start->data, "");
        ensure_equals(str.start->size, 0u);
        ensure_equals<void *>(str.end, &emptyLStringPart);
        ensure_equals<void *>(str.end->next, NULL);
        ensure_equals<StaticString>(str.end->data, "");
        ensure_equals(str.end->size, 0u);
        ensure_equals(StaticString(str.start->data, str.size), "");
    }

    TEST_METHOD(2) {
        set_test_name("Appending updates the links and the size");

        psg_lstr_append(&str, pool, "ab");
        ensure_equals(str.size, 2u);
        ensure(str.start != &emptyLStringPart);
        ensure_equals<void *>(str.start, str.end);

        psg_lstr_append(&str, pool, "cde");
        ensure_equals(str.size, 5u);
        ensure(str.start != &emptyLStringPart);
        ensure(str.start != str.end);
    }

    TEST_METHOD(3) {
        set_test_name("Appending an empty string does nothing");

        psg_lstr_append(&str, pool, "");
        ensure_equals(str.size, 0u);
        ensure_equals<void *>(str.start, &emptyLStringPart);
        ensure_equals<void *>(str.end, &emptyLStringPart);

        psg_lstr_append(&str, pool, "ab");
        psg_lstr_append(&str, pool, "");
        ensure_equals(str.size, 2u);
        ensure(str.start != &emptyLStringPart);
        ensure_equals<void *>(str.start, str.end);
    }


    /***** Comparison with StaticString *****/

    TEST_METHOD(10) {
        set_test_name("Comparing an empty LString with an empty StaticString");
        ensure(psg_lstr_cmp(&str, ""));
    }

    TEST_METHOD(11) {
        set_test_name("Comparing an empty LString with a non-empty StaticString");
        ensure(!psg_lstr_cmp(&str, "foo"));
        ensure(!psg_lstr_cmp(&str, "bar"));
    }

    TEST_METHOD(12) {
        set_test_name("Comparing an single-part LString with an empty StaticString");
        psg_lstr_append(&str, pool, "hi");
        ensure(!psg_lstr_cmp(&str, ""));
    }

    TEST_METHOD(13) {
        set_test_name("Comparing an single-part LString with a non-empty StaticString");
        psg_lstr_append(&str, pool, "hi");
        ensure(psg_lstr_cmp(&str, "hi"));
        ensure(!psg_lstr_cmp(&str, "ho"));
    }

    TEST_METHOD(14) {
        set_test_name("Comparing an multi-part LString with an empty StaticString");
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str, pool, "ho");
        ensure(!psg_lstr_cmp(&str, ""));
    }

    TEST_METHOD(15) {
        set_test_name("Comparing an multi-part LString with a non-empty StaticString");
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str, pool, "ho");
        ensure(psg_lstr_cmp(&str, "hiho"));
        ensure(!psg_lstr_cmp(&str, "hiho!"));
        ensure(!psg_lstr_cmp(&str, "hihi"));
        ensure(!psg_lstr_cmp(&str, "hm"));
        ensure(!psg_lstr_cmp(&str, ""));
    }


    /***** Comparison with StaticString, with size argument *****/

    TEST_METHOD(20) {
        set_test_name("Comparing an empty LString with an empty StaticString, with size argument");
        ensure(psg_lstr_cmp(&str, "", 0));
        ensure(psg_lstr_cmp(&str, "", 1));
        ensure(psg_lstr_cmp(&str, "", 2));
    }

    TEST_METHOD(21) {
        set_test_name("Comparing an empty LString with a non-empty StaticString, with size argument");
        ensure(psg_lstr_cmp(&str, "hello", 0));
        ensure(!psg_lstr_cmp(&str, "hello", 1));
    }

    TEST_METHOD(22) {
        set_test_name("Comparing an single-part LString with an empty StaticString, with size argument");
        psg_lstr_append(&str, pool, "hi");
        ensure(psg_lstr_cmp(&str, "", 0));
        ensure(!psg_lstr_cmp(&str, "", 1));
    }

    TEST_METHOD(23) {
        set_test_name("Comparing an single-part LString with a non-empty StaticString, with size argument");
        psg_lstr_append(&str, pool, "hi");
        ensure(psg_lstr_cmp(&str, "hi!", 0));
        ensure(psg_lstr_cmp(&str, "hi!", 1));
        ensure(psg_lstr_cmp(&str, "hi!", 2));
        ensure(!psg_lstr_cmp(&str, "hi!", 3));
        ensure(!psg_lstr_cmp(&str, "ho", 2));
    }

    TEST_METHOD(24) {
        set_test_name("Comparing an multi-part LString with an empty StaticString, with size argument");
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str, pool, "hoi");
        ensure(psg_lstr_cmp(&str, "", 0));
        ensure(!psg_lstr_cmp(&str, "", 1));
    }

    TEST_METHOD(25) {
        set_test_name("Comparing an multi-part LString with a non-empty StaticString, with size argument");
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str, pool, "hoi");
        ensure(psg_lstr_cmp(&str, "", 0));
        ensure(psg_lstr_cmp(&str, "h", 1));
        ensure(psg_lstr_cmp(&str, "hi", 2));
        ensure(psg_lstr_cmp(&str, "hihoi", 0));
        ensure(psg_lstr_cmp(&str, "hihoi", 1));
        ensure(psg_lstr_cmp(&str, "hihoi", 2));
        ensure(psg_lstr_cmp(&str, "hihoi", 3));
        ensure(psg_lstr_cmp(&str, "hihoi", 5));
        ensure(psg_lstr_cmp(&str, "hihoi!", 5));
        ensure(!psg_lstr_cmp(&str, "hihoi!", 6));
        ensure(!psg_lstr_cmp(&str, "hihoo", 5));
        ensure(psg_lstr_cmp(&str, "hihoo", 4));
    }


    /***** Comparison with LString *****/

    TEST_METHOD(30) {
        set_test_name("Comparing an empty LString with an empty LString");
        ensure(psg_lstr_cmp(&str, &str2));
    }

    TEST_METHOD(31) {
        set_test_name("Comparing an empty LString with a one-part LString");
        psg_lstr_append(&str2, pool, "hi");
        ensure(!psg_lstr_cmp(&str, &str2));
    }

    TEST_METHOD(32) {
        set_test_name("Comparing an empty LString with a multi-part LString");
        psg_lstr_append(&str2, pool, "hi");
        psg_lstr_append(&str2, pool, "hoi");
        ensure(!psg_lstr_cmp(&str, &str2));
    }

    TEST_METHOD(33) {
        set_test_name("Comparing an one-part LString with a one-part LString");
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str2, pool, "hi");
        ensure(psg_lstr_cmp(&str, &str2));

        reset();
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str2, pool, "ho");
        ensure(!psg_lstr_cmp(&str, &str2));

        reset();
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str2, pool, "hii");
        ensure(!psg_lstr_cmp(&str, &str2));
    }

    TEST_METHOD(34) {
        set_test_name("Comparing an one-part LString with a multi-part LString");
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str2, pool, "h");
        psg_lstr_append(&str2, pool, "i");
        ensure(psg_lstr_cmp(&str, &str2));

        reset();
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str2, pool, "h");
        psg_lstr_append(&str2, pool, "o");
        ensure(!psg_lstr_cmp(&str, &str2));

        reset();
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str2, pool, "hi");
        psg_lstr_append(&str2, pool, "o");
        ensure(!psg_lstr_cmp(&str, &str2));

        reset();
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str2, pool, "hi");
        psg_lstr_append(&str2, pool, "i");
        ensure(!psg_lstr_cmp(&str, &str2));
    }

    TEST_METHOD(35) {
        set_test_name("Comparing an multi-part LString with a multi-part LString");
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str, pool, "ho!");
        psg_lstr_append(&str2, pool, "hi");
        psg_lstr_append(&str2, pool, "ho!");
        ensure(psg_lstr_cmp(&str, &str2));

        reset();
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str, pool, "ho!");
        psg_lstr_append(&str2, pool, "h");
        psg_lstr_append(&str2, pool, "iho!");
        ensure(psg_lstr_cmp(&str, &str2));

        reset();
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str, pool, "ho!");
        psg_lstr_append(&str2, pool, "h");
        psg_lstr_append(&str2, pool, "iho");
        ensure(!psg_lstr_cmp(&str, &str2));

        reset();
        psg_lstr_append(&str, pool, "hi");
        psg_lstr_append(&str, pool, "ho!");
        psg_lstr_append(&str2, pool, "h");
        psg_lstr_append(&str2, pool, "i");
        psg_lstr_append(&str2, pool, "h");
        psg_lstr_append(&str2, pool, "o!");
        ensure(psg_lstr_cmp(&str, &str2));
    }


    /***** psg_lstr_make_contiguous *****/

    TEST_METHOD(40) {
        set_test_name("psg_lstr_make_contiguous(non-empty string)");
        const LString *cstr;

        psg_lstr_append(&str, pool, "hey");
        psg_lstr_append(&str, pool, "my");
        psg_lstr_append(&str, pool, "world");

        cstr = psg_lstr_make_contiguous(&str, pool);
        ensure_equals(cstr->size, strlen("heymyworld"));
        ensure_equals<void *>(cstr->start->next, NULL);
        ensure_equals(StaticString(cstr->start->data, cstr->size), "heymyworld");
    }

    TEST_METHOD(41) {
        set_test_name("psg_lstr_make_contiguous(empty string)");
        const LString *cstr;

        cstr = psg_lstr_make_contiguous(&str, pool);
        ensure_equals(cstr->size, 0u);
        ensure_equals<void *>(cstr->start, &emptyLStringPart);
        ensure_equals<void *>(cstr->end, &emptyLStringPart);
    }


    /***** psg_lstr_move_and_append *****/

    TEST_METHOD(45) {
        set_test_name("psg_lstr_move_and_append does nothing if from == to");

        psg_lstr_append(&str, pool, "hello");
        psg_lstr_append(&str, pool, "world");
        psg_lstr_move_and_append(&str, pool, &str);

        ensure_equals(str.size, 10u);
        ensure_equals(StaticString(str.start->data, str.start->size), "hello");
        ensure_equals(str.start->next, str.end);
        ensure_equals(StaticString(str.end->data, str.end->size), "world");
    }

    TEST_METHOD(46) {
        set_test_name("psg_lstr_move_and_append does nothing if 'from' is empty");

        psg_lstr_append(&str2, pool, "hello");
        psg_lstr_append(&str2, pool, "world");
        psg_lstr_move_and_append(&str, pool, &str2);

        ensure_equals(str.size, 0u);
        ensure_equals(str.start, &emptyLStringPart);
        ensure_equals(str.end, &emptyLStringPart);

        ensure_equals(str2.size, 10u);
        ensure_equals(StaticString(str2.start->data, str2.start->size), "hello");
        ensure_equals(str2.start->next, str2.end);
        ensure_equals(StaticString(str2.end->data, str2.end->size), "world");
    }

    TEST_METHOD(47) {
        set_test_name("psg_lstr_move_and_append when 'to' is empty");

        psg_lstr_append(&str, pool, "hello");
        psg_lstr_append(&str, pool, "world");
        psg_lstr_move_and_append(&str, pool, &str2);

        ensure_equals(str.size, 0u);
        ensure_equals(str.start, &emptyLStringPart);
        ensure_equals(str.end, &emptyLStringPart);

        ensure_equals(str2.size, 10u);
        ensure_equals(StaticString(str2.start->data, str2.start->size), "hello");
        ensure_equals(str2.start->next, str2.end);
        ensure_equals(StaticString(str2.end->data, str2.end->size), "world");
    }

    TEST_METHOD(48) {
        set_test_name("psg_lstr_move_and_append when 'to' is non-empty");

        psg_lstr_append(&str, pool, "hello");
        psg_lstr_append(&str, pool, "world");
        psg_lstr_append(&str2, pool, "abcde");
        psg_lstr_move_and_append(&str, pool, &str2);

        ensure_equals(str.size, 0u);
        ensure_equals(str.start, &emptyLStringPart);
        ensure_equals(str.end, &emptyLStringPart);

        ensure_equals(str2.size, 15u);
        ensure_equals(StaticString(str2.start->data, str2.start->size), "abcde");
        ensure(str2.start->next != str2.end);
        ensure(str2.start->next != NULL);
        ensure_equals(StaticString(str2.start->next->data, str2.start->next->size), "hello");
        ensure_equals(str2.start->next->next, str2.end);
        ensure_equals(StaticString(str2.end->data, str2.end->size), "world");
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0976 ]--