You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

44 lines
730 B

  1. package ini
  2. import (
  3. "reflect"
  4. "syscall"
  5. "testing"
  6. )
  7. func TestLoadFile(t *testing.T) {
  8. originalOpenFiles := numFilesOpen(t)
  9. file, err := LoadFile("test.ini")
  10. if err != nil {
  11. t.Fatal(err)
  12. }
  13. if originalOpenFiles != numFilesOpen(t) {
  14. t.Error("test.ini not closed")
  15. }
  16. if !reflect.DeepEqual(file, File{"default": {"stuff": "things"}}) {
  17. t.Error("file not read correctly")
  18. }
  19. }
  20. func numFilesOpen(t *testing.T) (num uint64) {
  21. var rlimit syscall.Rlimit
  22. err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit)
  23. if err != nil {
  24. t.Fatal(err)
  25. }
  26. maxFds := int(rlimit.Cur)
  27. var stat syscall.Stat_t
  28. for i := 0; i < maxFds; i++ {
  29. if syscall.Fstat(i, &stat) == nil {
  30. num++
  31. } else {
  32. return
  33. }
  34. }
  35. return
  36. }