Esempio n. 1
0
static void
string_misc()
{
    struct kstring *s1, *s2;

    s1 = kstring_new("hello = 10");
    assert_equal(kstring_length(s1), 10);

    s2 = kstring_new(NULL);
    kstring_vprintf(s2, "%s = %d", "hello", 10);
    assert_string_equal(kstring_cstr(s2), "hello = 10");

    assert_true(kstring_equal(s1, s2) == 1);
    assert_equal(kstring_hash(s1), kstring_hash(s2));

    kstring_free(s1);
    kstring_free(s2);
}
Esempio n. 2
0
int main(void) {
    kstr s1 = kstring_new(1);
    ASSERT_TRUE(kstring_length(s1) == 0);
    ASSERT_TRUE(kstring_capacity(s1) == 1);
    kstr s2 = kstring_newfrom("this is a string");
    kstr s3 = kstring_newfromvf("this is a %s", "string");
    ASSERT_STR_EQ(kstring_content(s2), kstring_content(s3));

    kstring_free(s3);
    kstring_free(s2);
    kstring_free(s1);

    s1 = kstring_newfrom("test");
    ASSERT_TRUE(kstring_content(s1)[kstring_length(s1)] == '\0');
    kstring_append(s1, "ing");
    ASSERT_TRUE(kstring_content(s1)[kstring_length(s1)] == '\0');
    ASSERT_STR_EQ(kstring_content(s1), "testing");
    kstring_assimilate(s1, kstring_newfrom(" 1 2 3"));
    ASSERT_TRUE(kstring_content(s1)[kstring_length(s1)] == '\0');
    ASSERT_STR_EQ(kstring_content(s1), "testing 1 2 3");
    kstring_free(s1);
    
    s1 = kstring_newfrom("testing");
    ASSERT_TRUE(kstring_content(s1)[kstring_length(s1)] == '\0');
    kstring_appendvf(s1, " %d %d %d", 1, 2, 3);
    ASSERT_TRUE(kstring_content(s1)[kstring_length(s1)] == '\0');
    ASSERT_STR_EQ(kstring_content(s1), "testing 1 2 3");
    size_t cap = kstring_capacity(s1);
    kstring_realloc(s1, cap*2);
    ASSERT_TRUE(kstring_content(s1)[kstring_length(s1)] == '\0');
    ASSERT_TRUE(kstring_capacity(s1) == cap*2);
    ASSERT_STR_EQ(kstring_content(s1), "testing 1 2 3");
    kstring_free(s1);

    s1 = kstring_newfrom("  test  ");
    ASSERT_TRUE(kstring_content(s1)[kstring_length(s1)] == '\0');
    kstring_stripl(s1);
    ASSERT_TRUE(kstring_content(s1)[kstring_length(s1)] == '\0');
    ASSERT_STR_EQ(kstring_content(s1), "test  ");
    kstring_stripr(s1);
    ASSERT_TRUE(kstring_content(s1)[kstring_length(s1)] == '\0');
    ASSERT_STR_EQ(kstring_content(s1), "test");
    kstring_free(s1);

    fprintf(stderr, "Passed %d asserts\n", asserts);

    return 0;
}
Esempio n. 3
0
static void
string_no_len_version()
{
    struct kstring *s;

    s = kstring_new("hello");
    assert_string_equal(kstring_cstr(s), "hello");

    kstring_append(s, "foo");
    assert_string_equal(kstring_cstr(s), "hellofoo");

    kstring_insert(s, 2, "bar");
    assert_string_equal(kstring_cstr(s), "hebarllofoo");

    kstring_free(s);
}
Esempio n. 4
0
static void
test_string_aa()
{
  aa_tree_t  *aa;
  kstring_t  *s;
  int         i;
  int         n;
  char       *sa[] = {
    "hello",
    "world",
    "hj",
    "krt",
    "test",
    "10",
    "85",
    "15",
    "70",
    NULL
  };

  aa = aa_tree_init(&g_string_op);
  if (aa == NULL)
    kerror("init aa tree error");

  for (i = 0; sa[i] != NULL; ++i) {
    s = kstring_new((unsigned char *) sa[i], strlen(sa[i]));
    if (s == NULL)
      kerror("malloc string_t error");

    n = aa_tree_insert(aa, (void *) s);
    if (n == KEEXIST)
      printf("[NOTICE] insert duplicate key\n");
    else if (n != KSUCCESS)
      kerror("aa tree insert [%s] error", sa[i]);
  }

  if (aa_tree_delete(aa, s) != KSUCCESS)
    kerror("aa tree delete error");
  aa_tree_print(aa);
  aa_tree_destroy(aa);
}