]> git.ipfire.org Git - location/libloc.git/blame - tests/lua/main.lua
lua: Create Country objects
[location/libloc.git] / tests / lua / main.lua
CommitLineData
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
20luaunit = require("luaunit")
21
7eaabd10
MT
22ENV_TEST_DATABASE = os.getenv("TEST_DATABASE")
23
6ae775f9
MT
24function test_load()
25 -- Try loading the module
26 location = require("location")
03b9c3a4
MT
27
28 -- Print the version
29 print(location.version())
6ae775f9
MT
30end
31
7eaabd10
MT
32function test_open_database()
33 location = require("location")
34
35 -- Open the database
36 db = location.Database.open(ENV_TEST_DATABASE)
37end
38
39function 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
51end
52
e914e3ca
MT
53function 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
66end
67
0ddfebb3
MT
68function 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)
76end
77
9ff91ee2
MT
78-- This test is not very deterministic but should help to test the GC methods
79function test_gc()
80 print("GC: " .. collectgarbage("collect"))
81end
82
6ae775f9 83os.exit(luaunit.LuaUnit.run())