Skip to content
This repository was archived by the owner on Mar 27, 2024. It is now read-only.

Commit c8053b7

Browse files
authored
Merge pull request #34 from cftorres/FixSizeOutput
Enhances size output
2 parents c9aab65 + 9b3ea71 commit c8053b7

18 files changed

+611
-383
lines changed

differs/aptDiff.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bufio"
55
"os"
66
"path/filepath"
7+
"strconv"
78
"strings"
89

910
"github.com/GoogleCloudPlatform/container-diff/utils"
@@ -81,7 +82,15 @@ func parseLine(text string, currPackage string, packages map[string]utils.Packag
8182
if !ok {
8283
currPackageInfo = utils.PackageInfo{}
8384
}
84-
currPackageInfo.Size = value
85+
var size int64
86+
var err error
87+
size, err = strconv.ParseInt(value, 10, 64)
88+
if err != nil {
89+
glog.Errorf("Could not get size for %s: %s", currPackage, err)
90+
size = -1
91+
}
92+
// Installed-Size is in KB, so we convert it to bytes to keep consistent with the tool's size units
93+
currPackageInfo.Size = size * 1024
8594
packages[currPackage] = currPackageInfo
8695
return currPackage
8796
default:

differs/aptDiff_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,19 @@ func TestParseLine(t *testing.T) {
4949
},
5050
{
5151
descrip: "Size line",
52-
line: "Installed-Size: 12floz",
52+
line: "Installed-Size: 12",
5353
packages: map[string]utils.PackageInfo{},
5454
currPackage: "La-Croix",
5555
expPackage: "La-Croix",
56-
expected: map[string]utils.PackageInfo{"La-Croix": {Size: "12floz"}},
56+
expected: map[string]utils.PackageInfo{"La-Croix": {Size: 12288}},
5757
},
5858
{
5959
descrip: "Pre-existing PackageInfo struct",
60-
line: "Installed-Size: 12floz",
60+
line: "Installed-Size: 12",
6161
packages: map[string]utils.PackageInfo{"La-Croix": {Version: "Lime"}},
6262
currPackage: "La-Croix",
6363
expPackage: "La-Croix",
64-
expected: map[string]utils.PackageInfo{"La-Croix": {Version: "Lime", Size: "12floz"}},
64+
expected: map[string]utils.PackageInfo{"La-Croix": {Version: "Lime", Size: 12288}},
6565
},
6666
}
6767

differs/nodeDiff.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"io/ioutil"
66
"os"
77
"path/filepath"
8-
"strconv"
98
"strings"
109

1110
"github.com/GoogleCloudPlatform/container-diff/utils"
@@ -55,8 +54,7 @@ func (a NodeAnalyzer) getPackages(image utils.Image) (map[string]map[string]util
5554
var currInfo utils.PackageInfo
5655
currInfo.Version = packageJSON.Version
5756
packagePath := strings.TrimSuffix(currPackage, "package.json")
58-
size := utils.GetSize(packagePath)
59-
currInfo.Size = strconv.FormatInt(size, 10)
57+
currInfo.Size = utils.GetSize(packagePath)
6058
mapPath := strings.Replace(packagePath, path, "", 1)
6159
// Check if other package version already recorded
6260
if _, ok := packages[packageJSON.Name]; !ok {

differs/nodeDiff_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,17 @@ func TestGetNodePackages(t *testing.T) {
2929
descrip: "all packages in one layer",
3030
path: "testDirs/packageOne",
3131
expected: map[string]map[string]utils.PackageInfo{
32-
"pac1": {"/node_modules/pac1/": {Version: "1.0", Size: "41"}},
33-
"pac2": {"/usr/local/lib/node_modules/pac2/": {Version: "2.0", Size: "41"}},
34-
"pac3": {"/node_modules/pac3/": {Version: "3.0", Size: "41"}}},
32+
"pac1": {"/node_modules/pac1/": {Version: "1.0", Size: 41}},
33+
"pac2": {"/usr/local/lib/node_modules/pac2/": {Version: "2.0", Size: 41}},
34+
"pac3": {"/node_modules/pac3/": {Version: "3.0", Size: 41}}},
3535
},
3636
{
3737
descrip: "Multi version packages",
3838
path: "testDirs/packageMulti",
3939
expected: map[string]map[string]utils.PackageInfo{
40-
"pac1": {"/node_modules/pac1/": {Version: "1.0", Size: "41"}},
41-
"pac2": {"/node_modules/pac2/": {Version: "2.0", Size: "41"},
42-
"/usr/local/lib/node_modules/pac2/": {Version: "3.0", Size: "41"}}},
40+
"pac1": {"/node_modules/pac1/": {Version: "1.0", Size: 41}},
41+
"pac2": {"/node_modules/pac2/": {Version: "2.0", Size: 41},
42+
"/usr/local/lib/node_modules/pac2/": {Version: "3.0", Size: 41}}},
4343
},
4444
}
4545

differs/pipDiff.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"path/filepath"
66
"reflect"
77
"regexp"
8-
"strconv"
98
"strings"
109

1110
"github.com/GoogleCloudPlatform/container-diff/utils"
@@ -66,13 +65,12 @@ func (a PipAnalyzer) getPackages(image utils.Image) (map[string]map[string]utils
6665

6766
// Retrieves size for actual package/script corresponding to each dist-info metadata directory
6867
// by taking the file entry alphabetically before it (for a package) or after it (for a script)
69-
var size string
68+
var size int64
7069
if i-1 >= 0 && contents[i-1].Name() == packageName {
7170
packagePath := filepath.Join(pythonPath, packageName)
72-
intSize := utils.GetSize(packagePath)
73-
size = strconv.FormatInt(intSize, 10)
71+
size = utils.GetSize(packagePath)
7472
} else if i+1 < len(contents) && contents[i+1].Name() == packageName+".py" {
75-
size = strconv.FormatInt(contents[i+1].Size(), 10)
73+
size = contents[i+1].Size()
7674

7775
} else {
7876
glog.Errorf("Could not find Python package %s for corresponding metadata info", packageName)

differs/pipDiff_test.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,13 @@ func TestGetPythonPackages(t *testing.T) {
7878
},
7979
expectedPackages: map[string]map[string]utils.PackageInfo{
8080
"packageone": {
81-
"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: "0"},
82-
"/usr/local/lib/python2.7/site-packages": {Version: "0.1.1", Size: "0"},
81+
"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: 0},
82+
"/usr/local/lib/python2.7/site-packages": {Version: "0.1.1", Size: 0},
8383
},
84-
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: "0"}},
85-
"script1": {"/usr/local/lib/python3.6/site-packages": {Version: "1.0", Size: "0"}},
86-
"script2": {"/usr/local/lib/python3.6/site-packages": {Version: "2.0", Size: "0"}},
87-
"script3": {"/usr/local/lib/python2.7/site-packages": {Version: "3.0", Size: "0"}},
84+
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: 0}},
85+
"script1": {"/usr/local/lib/python3.6/site-packages": {Version: "1.0", Size: 0}},
86+
"script2": {"/usr/local/lib/python3.6/site-packages": {Version: "2.0", Size: 0}},
87+
"script3": {"/usr/local/lib/python2.7/site-packages": {Version: "3.0", Size: 0}},
8888
},
8989
},
9090
{
@@ -93,10 +93,10 @@ func TestGetPythonPackages(t *testing.T) {
9393
FSPath: "testDirs/pipTests/packagesSingleVersion",
9494
},
9595
expectedPackages: map[string]map[string]utils.PackageInfo{
96-
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: "0"}},
97-
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: "0"}},
98-
"script1": {"/usr/local/lib/python3.6/site-packages": {Version: "1.0", Size: "0"}},
99-
"script2": {"/usr/local/lib/python3.6/site-packages": {Version: "2.0", Size: "0"}},
96+
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: 0}},
97+
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: 0}},
98+
"script1": {"/usr/local/lib/python3.6/site-packages": {Version: "1.0", Size: 0}},
99+
"script2": {"/usr/local/lib/python3.6/site-packages": {Version: "2.0", Size: 0}},
100100
},
101101
},
102102
{
@@ -110,11 +110,11 @@ func TestGetPythonPackages(t *testing.T) {
110110
},
111111
},
112112
expectedPackages: map[string]map[string]utils.PackageInfo{
113-
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: "0"}},
114-
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: "0"}},
115-
"packagefive": {"/pythonPath2/subdir": {Version: "3.6.9", Size: "0"}},
116-
"packagesix": {"/pythonPath1": {Version: "3.6.9", Size: "0"}},
117-
"packageseven": {"/pythonPath1": {Version: "4.6.2", Size: "0"}},
113+
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: 0}},
114+
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: 0}},
115+
"packagefive": {"/pythonPath2/subdir": {Version: "3.6.9", Size: 0}},
116+
"packagesix": {"/pythonPath1": {Version: "3.6.9", Size: 0}},
117+
"packageseven": {"/pythonPath1": {Version: "4.6.2", Size: 0}},
118118
},
119119
},
120120
{
@@ -128,8 +128,8 @@ func TestGetPythonPackages(t *testing.T) {
128128
},
129129
},
130130
expectedPackages: map[string]map[string]utils.PackageInfo{
131-
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: "0"}},
132-
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: "0"}},
131+
"packageone": {"/usr/local/lib/python3.6/site-packages": {Version: "3.6.9", Size: 0}},
132+
"packagetwo": {"/usr/local/lib/python3.6/site-packages": {Version: "4.6.2", Size: 0}},
133133
},
134134
},
135135
}

0 commit comments

Comments
 (0)