github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/utils/man/man_test.go (about)

     1  //go:build !windows
     2  // +build !windows
     3  
     4  package man
     5  
     6  import (
     7  	"embed"
     8  	"testing"
     9  
    10  	"github.com/lmorg/murex/test/count"
    11  )
    12  
    13  //go:embed test_*.txt
    14  var manPagesTxt embed.FS
    15  
    16  func TestMan(t *testing.T) {
    17  	files, err := manPagesTxt.ReadDir(".")
    18  	if err != nil {
    19  		t.Error(err.Error())
    20  	}
    21  
    22  	count.Tests(t, len(files)*2)
    23  
    24  	for _, entry := range files {
    25  		file, err := manPagesTxt.Open(entry.Name())
    26  		if err != nil {
    27  			t.Errorf("%s: %s", entry.Name(), err.Error())
    28  		}
    29  
    30  		flags, descs := ParseByStdio(file)
    31  		if len(flags) == 0 {
    32  			t.Errorf("%d flags returned for '%s'", len(flags), entry.Name())
    33  		}
    34  		if len(descs) == 0 {
    35  			t.Errorf("%d descriptions returned for '%s'", len(descs), entry.Name())
    36  		}
    37  
    38  		err = file.Close()
    39  		if err != nil {
    40  			t.Errorf("%s: %s", entry.Name(), err.Error())
    41  		}
    42  	}
    43  }