// This package is tested externally (see test.sh).
// However, we need this to do coverage tests.
//
// See coverage_test.go for the details, this is the same horrible hack.
//
// +build coveragebin

package main

import (
	"os"
	"os/signal"
	"syscall"
	"testing"
)

func TestRunMain(t *testing.T) {
	done := make(chan bool)

	signals := make(chan os.Signal, 1)
	go func() {
		<-signals
		done <- true
	}()
	signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGTERM)

	go func() {
		main()
		done <- true
	}()

	<-done
}
