#!/usr/bin/env perl

use strict;
use warnings;
use Test::More;
use File::Temp qw/tempdir/;
use FindBin qw($Bin);
use Cwd qw/abs_path/;
use File::Compare;
use Sys::Hostname;
use Socket;

# Run tests/auth/writekeyfile, and check that the KeyFile that it generates
# matches what we expect.

if (!defined(gethostbyname(hostname()))) {
    # writekeyfile needs a hostname to generate a config dir
    plan skip_all => 'Cannot resolve hostname';
}
plan tests => 1;

my $cmd;
if (defined($ENV{C_TAP_BUILD})) {
    $cmd = $ENV{C_TAP_BUILD} . "/auth/writekeyfile";
} else {
    $cmd = $Bin . "/writekeyfile";
}
$cmd = abs_path($cmd);

my $keyfile;
if (defined($ENV{C_TAP_SOURCE})) {
    $keyfile = $ENV{C_TAP_SOURCE} . "/auth/KeyFile.short";
} else {
    $keyfile = $Bin . "/KeyFile.short";
}
$keyfile = abs_path($keyfile);

my $dir = tempdir('afs_XXXXXX', CLEANUP => 1);

chdir($dir)
    or die("chdir $dir failed: $?");

system($cmd) == 0
    or die("$cmd failed: $?");

ok(compare("KeyFile", $keyfile) == 0,
   "writekeyfile generates expected KeyFile");
