]>
Commit | Line | Data |
---|---|---|
6ae775f9 MT |
1 | #!/usr/bin/lua |
2 | --[[########################################################################### | |
3 | # # | |
4 | # libloc - A library to determine the location of someone on the Internet # | |
5 | # # | |
6 | # Copyright (C) 2024 IPFire Development Team <info@ipfire.org> # | |
7 | # # | |
8 | # This library is free software; you can redistribute it and/or # | |
9 | # modify it under the terms of the GNU Lesser General Public # | |
10 | # License as published by the Free Software Foundation; either # | |
11 | # version 2.1 of the License, or (at your option) any later version. # | |
12 | # # | |
13 | # This library is distributed in the hope that it will be useful, # | |
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of # | |
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # | |
16 | # Lesser General Public License for more details. # | |
17 | # # | |
18 | ############################################################################--]] | |
19 | ||
20 | luaunit = require("luaunit") | |
21 | ||
7eaabd10 MT |
22 | ENV_TEST_DATABASE = os.getenv("TEST_DATABASE") |
23 | ||
6ae775f9 MT |
24 | function test_load() |
25 | -- Try loading the module | |
26 | location = require("location") | |
03b9c3a4 MT |
27 | |
28 | -- Print the version | |
29 | print(location.version()) | |
6ae775f9 MT |
30 | end |
31 | ||
7eaabd10 MT |
32 | function test_open_database() |
33 | location = require("location") | |
34 | ||
35 | -- Open the database | |
36 | db = location.Database.open(ENV_TEST_DATABASE) | |
37 | end | |
38 | ||
39 | function test_lookup() | |
40 | location = require("location") | |
41 | ||
42 | -- Open the database | |
43 | db = location.Database.open(ENV_TEST_DATABASE) | |
44 | ||
45 | -- Perform a lookup | |
2ec52cc1 MT |
46 | network = db:lookup("81.3.27.32") |
47 | ||
48 | luaunit.assertEquals(network:get_family(), 2) -- AF_INET | |
49 | luaunit.assertEquals(network:get_country_code(), "DE") | |
50 | luaunit.assertEquals(network:get_asn(), 24679) | |
7eaabd10 MT |
51 | end |
52 | ||
e914e3ca MT |
53 | function test_network() |
54 | location = require("location") | |
55 | ||
56 | n1 = location.Network.new("10.0.0.0/8") | |
57 | ||
58 | -- The ASN should be nul | |
b49c59d2 | 59 | luaunit.assertNil(n1:get_asn()) |
e914e3ca MT |
60 | |
61 | -- The family should be IPv4 | |
2ec52cc1 | 62 | luaunit.assertEquals(n1:get_family(), 2) -- AF_INET |
e914e3ca MT |
63 | |
64 | -- The country code should be empty | |
b49c59d2 | 65 | luaunit.assertNil(n1:get_country_code()) |
e914e3ca MT |
66 | end |
67 | ||
0ddfebb3 MT |
68 | function test_country() |
69 | location = require("location") | |
70 | ||
71 | c1 = location.Country.new("DE") | |
72 | luaunit.assertEquals(c1:get_code(), "DE") | |
73 | ||
74 | c2 = location.Country.new("GB") | |
75 | luaunit.assertNotEquals(c1, c2) | |
76 | end | |
77 | ||
9ff91ee2 MT |
78 | -- This test is not very deterministic but should help to test the GC methods |
79 | function test_gc() | |
80 | print("GC: " .. collectgarbage("collect")) | |
81 | end | |
82 | ||
6ae775f9 | 83 | os.exit(luaunit.LuaUnit.run()) |