mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-05 23:53:19 +08:00
fix some tests
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
This commit is contained in:
6
Godeps/_workspace/src/github.com/cheggaaa/pb/pb.go
generated
vendored
6
Godeps/_workspace/src/github.com/cheggaaa/pb/pb.go
generated
vendored
@ -100,7 +100,7 @@ func (pb *ProgressBar) Start() *ProgressBar {
|
||||
pb.ShowBar = false
|
||||
pb.ShowTimeLeft = false
|
||||
pb.ShowPercent = false
|
||||
}
|
||||
}
|
||||
if !pb.ManualUpdate {
|
||||
go pb.writer()
|
||||
}
|
||||
@ -233,7 +233,7 @@ func (pb *ProgressBar) write(current int64) {
|
||||
percent := float64(current) / (float64(pb.Total) / float64(100))
|
||||
percentBox = fmt.Sprintf(" %#.02f %% ", percent)
|
||||
}
|
||||
|
||||
|
||||
// counters
|
||||
if pb.ShowCounters {
|
||||
if pb.Total > 0 {
|
||||
@ -271,7 +271,7 @@ func (pb *ProgressBar) write(current int64) {
|
||||
// bar
|
||||
if pb.ShowBar {
|
||||
size := width - len(countersBox+pb.BarStart+pb.BarEnd+percentBox+timeLeftBox+speedBox+pb.prefix+pb.postfix)
|
||||
if size > 0 {
|
||||
if size > 0 && pb.Total > 0 {
|
||||
curCount := int(math.Ceil((float64(current) / float64(pb.Total)) * float64(size)))
|
||||
emptCount := size - curCount
|
||||
barBox = pb.BarStart
|
||||
|
@ -7,6 +7,7 @@ import (
|
||||
"path"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
cmds "github.com/ipfs/go-ipfs/commands"
|
||||
@ -269,8 +270,8 @@ func parseArgs(inputs []string, stdin *os.File, argDefs []cmds.Argument, recursi
|
||||
}
|
||||
|
||||
stringArgs := make([]string, 0, numInputs)
|
||||
fileArgs := make([]files.File, 0, numInputs)
|
||||
|
||||
fileArgs := make(map[string]files.File)
|
||||
argDefIndex := 0 // the index of the current argument definition
|
||||
for i := 0; i < numInputs; i++ {
|
||||
argDef := getArgDef(argDefIndex, argDefs)
|
||||
@ -305,18 +306,21 @@ func parseArgs(inputs []string, stdin *os.File, argDefs []cmds.Argument, recursi
|
||||
} else if argDef.Type == cmds.ArgFile {
|
||||
if stdin == nil || !argDef.SupportsStdin {
|
||||
// treat stringArg values as file paths
|
||||
fileArgs, inputs, err = appendFile(fileArgs, inputs, argDef, recursive)
|
||||
fpath := inputs[0]
|
||||
inputs = inputs[1:]
|
||||
file, err := appendFile(fpath, argDef, recursive)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
fileArgs[fpath] = file
|
||||
} else {
|
||||
if len(inputs) > 0 {
|
||||
// don't use stdin if we have inputs
|
||||
stdin = nil
|
||||
} else {
|
||||
// if we have a stdin, create a file from it
|
||||
fileArgs, stdin = appendStdinAsFile(fileArgs, stdin)
|
||||
fileArgs[""] = files.NewReaderFile("", "", stdin, nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -333,7 +337,23 @@ func parseArgs(inputs []string, stdin *os.File, argDefs []cmds.Argument, recursi
|
||||
}
|
||||
}
|
||||
|
||||
return stringArgs, fileArgs, nil
|
||||
return stringArgs, filesMapToSortedArr(fileArgs), nil
|
||||
}
|
||||
|
||||
func filesMapToSortedArr(fs map[string]files.File) []files.File {
|
||||
var names []string
|
||||
for name, _ := range fs {
|
||||
names = append(names, name)
|
||||
}
|
||||
|
||||
sort.Strings(names)
|
||||
|
||||
var out []files.File
|
||||
for _, f := range names {
|
||||
out = append(out, fs[f])
|
||||
}
|
||||
|
||||
return out
|
||||
}
|
||||
|
||||
func getArgDef(i int, argDefs []cmds.Argument) *cmds.Argument {
|
||||
@ -366,44 +386,35 @@ func appendStdinAsString(args []string, stdin *os.File) ([]string, *os.File, err
|
||||
return append(args, strings.Split(input, "\n")...), nil, nil
|
||||
}
|
||||
|
||||
func appendFile(args []files.File, inputs []string, argDef *cmds.Argument, recursive bool) ([]files.File, []string, error) {
|
||||
fpath := filepath.ToSlash(filepath.Clean(inputs[0]))
|
||||
const notRecursiveFmtStr = "'%s' is a directory, use the '-%s' flag to specify directories"
|
||||
const dirNotSupportedFmtStr = "Invalid path '%s', argument '%s' does not support directories"
|
||||
|
||||
func appendFile(fpath string, argDef *cmds.Argument, recursive bool) (files.File, error) {
|
||||
fpath = filepath.ToSlash(filepath.Clean(fpath))
|
||||
|
||||
if fpath == "." {
|
||||
cwd, err := os.Getwd()
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
return nil, err
|
||||
}
|
||||
fpath = cwd
|
||||
}
|
||||
|
||||
stat, err := os.Lstat(fpath)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if stat.IsDir() {
|
||||
if !argDef.Recursive {
|
||||
err = fmt.Errorf("Invalid path '%s', argument '%s' does not support directories",
|
||||
fpath, argDef.Name)
|
||||
return nil, nil, err
|
||||
return nil, fmt.Errorf(dirNotSupportedFmtStr, fpath, argDef.Name)
|
||||
}
|
||||
if !recursive {
|
||||
err = fmt.Errorf("'%s' is a directory, use the '-%s' flag to specify directories",
|
||||
fpath, cmds.RecShort)
|
||||
return nil, nil, err
|
||||
return nil, fmt.Errorf(notRecursiveFmtStr, fpath, cmds.RecShort)
|
||||
}
|
||||
}
|
||||
|
||||
arg, err := files.NewSerialFile(path.Base(fpath), fpath, stat)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
return append(args, arg), inputs[1:], nil
|
||||
}
|
||||
|
||||
func appendStdinAsFile(args []files.File, stdin *os.File) ([]files.File, *os.File) {
|
||||
arg := files.NewReaderFile("", "", stdin, nil)
|
||||
return append(args, arg), nil
|
||||
return files.NewSerialFile(path.Base(fpath), fpath, stat)
|
||||
}
|
||||
|
||||
// isTerminal returns true if stdin is a Stdin pipe (e.g. `cat file | ipfs`),
|
||||
|
@ -59,7 +59,13 @@ remains to be implemented.
|
||||
return nil
|
||||
}
|
||||
|
||||
req.SetOption(progressOptionName, true)
|
||||
// ipfs cli progress bar defaults to true
|
||||
progress, found, _ := req.Option(progressOptionName).Bool()
|
||||
if !found {
|
||||
progress = true
|
||||
}
|
||||
|
||||
req.SetOption(progressOptionName, progress)
|
||||
|
||||
sizeFile, ok := req.Files().(files.SizeFile)
|
||||
if !ok {
|
||||
@ -201,13 +207,18 @@ remains to be implemented.
|
||||
return
|
||||
}
|
||||
|
||||
progress, _, err := req.Option(progressOptionName).Bool()
|
||||
progress, prgFound, err := req.Option(progressOptionName).Bool()
|
||||
if err != nil {
|
||||
res.SetError(u.ErrCast(), cmds.ErrNormal)
|
||||
return
|
||||
}
|
||||
|
||||
showProgressBar := !quiet || progress
|
||||
var showProgressBar bool
|
||||
if prgFound {
|
||||
showProgressBar = progress
|
||||
} else if !quiet {
|
||||
showProgressBar = true
|
||||
}
|
||||
|
||||
var bar *pb.ProgressBar
|
||||
var terminalWidth int
|
||||
@ -279,10 +290,12 @@ remains to be implemented.
|
||||
bar.Update()
|
||||
}
|
||||
case size := <-sizeChan:
|
||||
bar.Total = size
|
||||
bar.ShowPercent = true
|
||||
bar.ShowBar = true
|
||||
bar.ShowTimeLeft = true
|
||||
if showProgressBar {
|
||||
bar.Total = size
|
||||
bar.ShowPercent = true
|
||||
bar.ShowBar = true
|
||||
bar.ShowTimeLeft = true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -193,19 +193,22 @@ func (params *Adder) Finalize() (*dag.Node, error) {
|
||||
}
|
||||
|
||||
func (params *Adder) outputDirs(path string, nd *dag.Node) error {
|
||||
if !bytes.Equal(nd.Data, folderData) {
|
||||
return nil
|
||||
}
|
||||
|
||||
for _, l := range nd.Links {
|
||||
child, err := l.GetNode(params.ctx, params.node.DAG)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if bytes.Equal(child.Data, folderData) {
|
||||
err := params.outputDirs(gopath.Join(path, l.Name), child)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = params.outputDirs(gopath.Join(path, l.Name), child)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return outputDagnode(params.out, path, nd)
|
||||
}
|
||||
|
||||
|
@ -308,7 +308,8 @@ func (d *Directory) AddChild(name string, nd *dag.Node) error {
|
||||
|
||||
d.modTime = time.Now()
|
||||
|
||||
return d.parent.closeChild(d.name, d.node)
|
||||
//return d.parent.closeChild(d.name, d.node)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Directory) sync() error {
|
||||
|
@ -38,11 +38,11 @@ test_add_skip() {
|
||||
cat >expected <<-\EOF &&
|
||||
added QmcAREBcjgnUpKfyFmUGnfajA1NQS5ydqRp7WfqZ6JF8Dx planets/.asteroids/ceres.txt
|
||||
added QmZ5eaLybJ5GUZBNwy24AA9EEDTDpA4B8qXnuN3cGxu2uF planets/.asteroids/pallas.txt
|
||||
added Qmf6rbs5GF85anDuoxpSAdtuZPM9D2Yt3HngzjUVSQ7kDV planets/.asteroids
|
||||
added QmaowqjedBkUrMUXgzt9c2ZnAJncM9jpJtkFfgdFstGr5a planets/.charon.txt
|
||||
added QmU4zFD5eJtRBsWC63AvpozM9Atiadg9kPVTuTrnCYJiNF planets/.pluto.txt
|
||||
added QmZy3khu7qf696i5HtkgL2NotsCZ8wzvNZJ1eUdA5n8KaV planets/mars.txt
|
||||
added QmQnv4m3Q5512zgVtpbJ9z85osQrzZzGRn934AGh6iVEXz planets/venus.txt
|
||||
added Qmf6rbs5GF85anDuoxpSAdtuZPM9D2Yt3HngzjUVSQ7kDV planets/.asteroids
|
||||
added QmetajtFdmzhWYodAsZoVZSiqpeJDAiaw2NwbM3xcWcpDj planets
|
||||
EOF
|
||||
test_cmp expected actual
|
||||
|
@ -15,8 +15,8 @@ add_w_12='added Qme987pqNBhZZXy4ckeXiR7zaRQwBabB7fTgHurW2yJfNu 4r93
|
||||
added QmVb4ntSZZnT2J2zvCmXKMJc52cmZYH6AB37MzeYewnkjs 4u6ead
|
||||
added QmZPASVB6EsADrLN8S2sak34zEHL8mx4TAVsPJU9cNnQQJ '
|
||||
|
||||
add_w_21='added QmVb4ntSZZnT2J2zvCmXKMJc52cmZYH6AB37MzeYewnkjs 4u6ead
|
||||
added Qme987pqNBhZZXy4ckeXiR7zaRQwBabB7fTgHurW2yJfNu 4r93
|
||||
add_w_21='added Qme987pqNBhZZXy4ckeXiR7zaRQwBabB7fTgHurW2yJfNu 4r93
|
||||
added QmVb4ntSZZnT2J2zvCmXKMJc52cmZYH6AB37MzeYewnkjs 4u6ead
|
||||
added QmZPASVB6EsADrLN8S2sak34zEHL8mx4TAVsPJU9cNnQQJ '
|
||||
|
||||
add_w_d1='added QmPcaX84tDiTfzdTn8GQxexodgeWH6mHjSss5Zfr5ojssb _jo7/-s782qgs
|
||||
@ -27,20 +27,20 @@ added QmYC3u5jGWuyFwvTxtvLYm2K3SpWZ31tg3NjpVVvh9cJaJ _jo7/wzvsihy
|
||||
added QmQkib3f9XNX5sj6WEahLUPFpheTcwSRJwUCSvjcv8b9by _jo7
|
||||
added QmNQoesMj1qp8ApE51NbtTjFYksyzkezPD4cat7V2kzbKN '
|
||||
|
||||
add_w_d2='added QmVaKAt2eVftNKFfKhiBV7Mu5HjCugffuLqWqobSSFgiA7 h3qpecj0
|
||||
add_w_d2='added Qme987pqNBhZZXy4ckeXiR7zaRQwBabB7fTgHurW2yJfNu 4r93
|
||||
added QmU9Jqks8TPu4vFr6t7EKkAKQrSJuEujNj1AkzoCeTEDFJ gnz66h/1k0xpx34
|
||||
added QmSLYZycXAufRw3ePMVH2brbtYWCcWsmksGLbHcT8ia9Ke gnz66h/9cwudvacx
|
||||
added QmfYmpCCAMU9nLe7xbrYsHf5z2R2GxeQnsm4zavUhX9vq2 gnz66h/9ximv51cbo8
|
||||
added QmWgEE4e2kfx3b8HZcBk5cLrfhoi8kTMQP2MipgPhykuV3 gnz66h/b54ygh6gs
|
||||
added QmcLbqEqhREGednc6mrVtanee4WHKp5JnUfiwTTHCJwuDf gnz66h/lbl5
|
||||
added QmVPwNy8pZegpsNmsjjZvdTQn4uCeuZgtzhgWhRSQWjK9x gnz66h
|
||||
added QmPcaX84tDiTfzdTn8GQxexodgeWH6mHjSss5Zfr5ojssb _jo7/-s782qgs
|
||||
added QmaVBqquUuXKjkyWHXaXfsaQUxAnsCKS95VRDHU8PzGA4K _jo7/15totauzkak-
|
||||
added QmaAHFG8cmhW3WLjofx5siSp44VV25ETN6ThzrU8iAqpkR _jo7/galecuirrj4r
|
||||
added QmeuSfhJNKwBESp1W9H8cfoMdBfW3AeHQDWXbNXQJYWp53 _jo7/mzo50r-1xidf5zx
|
||||
added QmYC3u5jGWuyFwvTxtvLYm2K3SpWZ31tg3NjpVVvh9cJaJ _jo7/wzvsihy
|
||||
added QmVaKAt2eVftNKFfKhiBV7Mu5HjCugffuLqWqobSSFgiA7 h3qpecj0
|
||||
added QmVPwNy8pZegpsNmsjjZvdTQn4uCeuZgtzhgWhRSQWjK9x gnz66h
|
||||
added QmQkib3f9XNX5sj6WEahLUPFpheTcwSRJwUCSvjcv8b9by _jo7
|
||||
added Qme987pqNBhZZXy4ckeXiR7zaRQwBabB7fTgHurW2yJfNu 4r93
|
||||
added QmTmc46fhKC8Liuh5soy1VotdnHcqLu3r6HpPGwDZCnqL1 '
|
||||
|
||||
add_w_r='QmcCksBMDuuyuyfAMMNzEAx6Z7jTrdRy9a23WpufAhG9ji'
|
||||
|
@ -27,12 +27,12 @@ test_ls_cmd() {
|
||||
cat <<-\EOF >expected_add &&
|
||||
added QmQNd6ubRXaNG6Prov8o6vk3bn6eWsj9FxLGrAVDUAGkGe testData/d1/128
|
||||
added QmZULkCELmmk5XNfCgTnCyFgAVxBRBXyDHGGMVoLFLiXEN testData/d1/a
|
||||
added QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss testData/d1
|
||||
added QmbQBUSRL9raZtNXfpTDeaxQapibJEG6qEY8WqAN22aUzd testData/d2/1024
|
||||
added QmaRGe7bVmVaLmxbrMiVNXqW4pRNNp3xq7hFtyRKA3mtJL testData/d2/a
|
||||
added QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy testData/d2
|
||||
added QmeomffUNfmQy76CQGy9NdmqEnnHU9soCexBnGU3ezPHVH testData/f1
|
||||
added QmNtocSs7MoDkJMc1RkyisCSKvLadujPsfJfSdJ3e1eA1M testData/f2
|
||||
added QmSix55yz8CzWXf5ZVM9vgEvijnEeeXiTSarVtsqiiCJss testData/d1
|
||||
added QmR3jhV4XpxxPjPT3Y8vNnWvWNvakdcT3H6vqpRBsX1MLy testData/d2
|
||||
added QmfNy183bXiRVyrhyWtq3TwHn79yHEkiAGFr18P7YNzESj testData
|
||||
EOF
|
||||
test_cmp expected_add actual_add
|
||||
|
@ -29,11 +29,6 @@ test_expect_success "'ipfs repo gc' succeeds" '
|
||||
ipfs repo gc >gc_out_actual
|
||||
'
|
||||
|
||||
test_expect_success "'ipfs repo gc' looks good (patch root)" '
|
||||
PATCH_ROOT=QmQXirSbubiySKnqaFyfs5YzziXRB5JEVQVjU6xsd7innr &&
|
||||
grep "removed $PATCH_ROOT" gc_out_actual
|
||||
'
|
||||
|
||||
test_expect_success "'ipfs repo gc' doesnt remove file" '
|
||||
ipfs cat "$HASH" >out &&
|
||||
test_cmp out afile
|
||||
|
Reference in New Issue
Block a user