]>
git.proxmox.com Git - pve-installer.git/blob - test/parse-fqdn.pl
3009984821d71f30a5d9ddeb3ef1f8bf396e3e1e
8 use Proxmox
::Sys
::Net
qw(parse_fqdn);
10 # some constants just to avoid repeating ourselves
11 use constant ERR_INVALID
=> "Hostname does not look like a fully qualified domain name\n";
12 use constant ERR_ALPHANUM
=> "FQDN must only consist of alphanumeric characters and dashes\n";
13 use constant ERR_NUMERIC
=> "Purely numeric hostnames are not allowed\n";
14 use constant ERR_TOOLONG
=> "FQDN too long\n";
15 use constant ERR_EMPTY
=> "FQDN cannot be empty\n";
18 my ($fqdn, $expected) = @_;
20 my @parsed = parse_fqdn
($fqdn);
21 is_deeply
(\
@parsed, $expected, "FQDN is valid and compared successfully: $fqdn");
25 my ($fqdn, $expected_err) = @_;
27 my $parsed = eval { parse_fqdn
($fqdn) };
28 is($parsed, undef, "invalid FQDN did fail parsing: $fqdn");
29 is($@, $expected_err, "invalid FQDN threw correct error: $fqdn");
32 is_invalid
(undef, ERR_EMPTY
);
33 is_invalid
('', ERR_EMPTY
);
35 is_parsed
('foo.example.com', ['foo', 'example.com']);
36 is_parsed
('foo-bar.com', ['foo-bar', 'com']);
37 is_parsed
('a-b.com', ['a-b', 'com']);
39 is_invalid
('foo', ERR_INVALID
);
40 is_invalid
('-foo.com', ERR_ALPHANUM
);
41 is_invalid
('foo-.com', ERR_ALPHANUM
);
42 is_invalid
('foo.com-', ERR_ALPHANUM
);
43 is_invalid
('-o-.com', ERR_ALPHANUM
);
45 # https://bugzilla.proxmox.com/show_bug.cgi?id=1054
46 is_invalid
('123.com', ERR_NUMERIC
);
47 is_parsed
('foo123.com', ['foo123', 'com']);
48 is_parsed
('123foo.com', ['123foo', 'com']);
50 is_parsed
('a' x
63 . '.com', ['a' x
63, 'com']);
51 is_invalid
('a' x
250 . '.com', ERR_TOOLONG
);
52 is_invalid
('a' x
64 . '.com', ERR_ALPHANUM
);