github.com/mvdan/u-root-coreutils@v0.0.0-20230122170626-c2eef2898555/cmds/core/df/df_test.go (about)

     1  // Copyright 2015-2017 the u-root Authors. All rights reserved
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  //go:build !plan9 && !windows
     6  
     7  package main
     8  
     9  import (
    10  	"bytes"
    11  	"errors"
    12  	"os"
    13  	"testing"
    14  )
    15  
    16  func TestRunDF(t *testing.T) {
    17  	for _, tt := range []struct {
    18  		name    string
    19  		args    []string
    20  		fargs   flags
    21  		wantErr error
    22  	}{
    23  		{
    24  			name: "No-such-file-or-directory",
    25  			args: []string{""},
    26  		},
    27  		{
    28  			name: "NoArgs-NoFlags",
    29  		},
    30  		{
    31  			name: "NoArgs-M-Flag",
    32  			fargs: flags{
    33  				m: true,
    34  			},
    35  		},
    36  		{
    37  			name: "NoArgs-K-Flag",
    38  			fargs: flags{
    39  				k: true,
    40  			},
    41  		},
    42  		{
    43  			name: "NoArgs-KM-Flag",
    44  			fargs: flags{
    45  				k: true,
    46  				m: true,
    47  			},
    48  			wantErr: errKMExclusiv,
    49  		},
    50  		{
    51  			name: "Dir as argument",
    52  			args: []string{os.TempDir()},
    53  		},
    54  	} {
    55  		t.Run(tt.name, func(t *testing.T) {
    56  			var buf bytes.Buffer
    57  			if err := df(&buf, tt.fargs, tt.args); !errors.Is(err, tt.wantErr) {
    58  				t.Errorf("df(%v, %v, buf)=%q, want %q", tt.args, tt.fargs, err, tt.wantErr)
    59  			}
    60  		})
    61  	}
    62  }