File: table_driven_lsc_tests.c

package info (click to toggle)
openvas-scanner 23.35.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 22,416 kB
  • sloc: ansic: 41,615; xml: 6,251; pascal: 3,723; yacc: 1,250; sh: 1,068; makefile: 333; sql: 273; javascript: 12
file content (110 lines) | stat: -rw-r--r-- 3,343 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/* SPDX-FileCopyrightText: 2023 Greenbone AG
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 */

#include "table_driven_lsc.c"

#include <cgreen/cgreen.h>
#include <cgreen/constraint_syntax_helpers.h>
#include <cgreen/mocks.h>
#include <sys/cdefs.h>

Describe (lsc);
BeforeEach (lsc)
{
}
AfterEach (lsc)
{
}

static char *resp_str = "{"
                        "\"1.3.6.1.4.1.25623.1.1.7.2.2023.0988598199100\": ["
                        "{"
                        "\"name\": \"grafana8\","
                        "\"installed_version\": \"8.5.23\","
                        "\"fixed_version\": {"
                        "\"version\": \"8.5.24\","
                        "\"specifier\": \">=\""
                        "}"
                        "},"
                        "{"
                        "\"name\": \"grafana9\","
                        "\"installed_version\": \"9.4.7\","
                        "\"fixed_version\": {"
                        "\"start\": \"9.4.0\","
                        "\"end\": \"9.4.9\""
                        "}"
                        "}"
                        "],"
                        "\"1.3.6.1.4.1.25623.1.1.7.2.2023.10089729899100\": ["
                        "{"
                        "\"name\": \"gitlab-ce\","
                        "\"installed_version\": \"16.0.1\","
                        "\"fixed_version\": {"
                        "\"start\": \"16.0.0\","
                        "\"end\": \"16.0.7\""
                        "}"
                        "}"
                        "]"
                        "}";

Ensure (lsc, make_pkg_in_json)
{
  char *pkglist = "pkg1.2.3\npkg4.5.6\nfoo-24\nbar-35";
  char *json = "[\"pkg1.2.3\",\"pkg4.5.6\",\"foo-24\",\"bar-35\"]";

  assert_that (strcmp (make_package_list_as_json_str (pkglist), json),
               is_equal_to (0));
}

Ensure (lsc, process_resp)
{
  advisories_t *advisories = NULL;

  advisories = lsc_process_response (resp_str, strlen (resp_str));
  assert_that ((*advisories).count, is_equal_to (2));

  assert_that ((*advisories).advisories[0]->count, is_equal_to (2));
  assert_that ((*advisories).advisories[0]->pkgs[0]->type,
               is_equal_to (SINGLE));
  assert_that (
    strcmp ((*advisories).advisories[0]->pkgs[0]->pkg_name, "grafana8"),
    is_equal_to (0));
  assert_that (
    strcmp ((*advisories).advisories[0]->pkgs[0]->install_version, "8.5.23"),
    is_equal_to (0));
  assert_that (
    strcmp ((*advisories).advisories[0]->pkgs[1]->pkg_name, "grafana9"),
    is_equal_to (0));
  assert_that (
    strcmp ((*advisories).advisories[0]->pkgs[1]->install_version, "9.4.7"),
    is_equal_to (0));

  assert_that ((*advisories).advisories[0]->pkgs[1]->type, is_equal_to (RANGE));

  assert_that ((*advisories).advisories[1]->count, is_equal_to (1));
  assert_that ((*advisories).advisories[0]->pkgs[1]->type, is_equal_to (RANGE));

  advisories_free (advisories);
}

int
main (int argc, char **argv)
{
  int ret;
  TestSuite *suite;

  suite = create_test_suite ();

  add_test_with_context (suite, lsc, process_resp);
  add_test_with_context (suite, lsc, make_pkg_in_json);
  if (argc > 1)
    ret = run_single_test (suite, argv[1], create_text_reporter ());
  else
    ret = run_test_suite (suite, create_text_reporter ());

  destroy_test_suite (suite);

  return ret;
}