Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
935e97d5
Commit
935e97d5
authored
Oct 09, 2014
by
Clayton Coleman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move ObjectDiff into util
parent
996c0e44
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
71 additions
and
52 deletions
+71
-52
latest_test.go
pkg/api/latest/latest_test.go
+1
-2
serialization_test.go
pkg/api/serialization_test.go
+2
-2
scheme.go
pkg/runtime/scheme.go
+0
-28
diff.go
pkg/util/diff.go
+68
-0
util.go
pkg/util/util.go
+0
-20
No files found.
pkg/api/latest/latest_test.go
View file @
935e97d5
...
...
@@ -25,7 +25,6 @@ import (
internal
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
_
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta1"
_
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta2"
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/fsouza/go-dockerclient"
"github.com/google/gofuzz"
...
...
@@ -128,7 +127,7 @@ func TestInternalRoundTrip(t *testing.T) {
}
if
!
reflect
.
DeepEqual
(
obj
,
actual
)
{
t
.
Errorf
(
"%s: diff %s"
,
k
,
runtime
.
ObjectDiff
(
obj
,
actual
))
t
.
Errorf
(
"%s: diff %s"
,
k
,
util
.
ObjectDiff
(
obj
,
actual
))
}
}
}
...
...
pkg/api/serialization_test.go
View file @
935e97d5
...
...
@@ -130,7 +130,7 @@ func runTest(t *testing.T, codec runtime.Codec, source runtime.Object) {
return
}
else
{
if
!
reflect
.
DeepEqual
(
source
,
obj2
)
{
t
.
Errorf
(
"1: %v: diff: %v"
,
name
,
runtime
.
ObjectDiff
(
source
,
obj2
))
t
.
Errorf
(
"1: %v: diff: %v"
,
name
,
util
.
ObjectDiff
(
source
,
obj2
))
return
}
}
...
...
@@ -141,7 +141,7 @@ func runTest(t *testing.T, codec runtime.Codec, source runtime.Object) {
return
}
else
{
if
!
reflect
.
DeepEqual
(
source
,
obj3
)
{
t
.
Errorf
(
"3: %v: diff: %v"
,
name
,
runtime
.
ObjectDiff
(
source
,
obj3
))
t
.
Errorf
(
"3: %v: diff: %v"
,
name
,
util
.
ObjectDiff
(
source
,
obj3
))
return
}
}
...
...
pkg/runtime/scheme.go
View file @
935e97d5
...
...
@@ -17,12 +17,10 @@ limitations under the License.
package
runtime
import
(
"encoding/json"
"fmt"
"reflect"
"github.com/GoogleCloudPlatform/kubernetes/pkg/conversion"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"gopkg.in/v1/yaml"
)
...
...
@@ -368,32 +366,6 @@ func (s *Scheme) CopyOrDie(obj Object) Object {
return
newObj
}
// ObjectDiff writes the two objects out as JSON and prints out the identical part of
// the objects followed by the remaining part of 'a' and finally the remaining part of 'b'.
// For debugging tests.
func
ObjectDiff
(
a
,
b
Object
)
string
{
ab
,
err
:=
json
.
Marshal
(
a
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"a: %v"
,
err
))
}
bb
,
err
:=
json
.
Marshal
(
b
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"b: %v"
,
err
))
}
return
util
.
StringDiff
(
string
(
ab
),
string
(
bb
))
}
// ObjectGoPrintDiff is like ObjectDiff, but uses go's %#v formatter to print the
// objects, in case json isn't showing you the difference. (reflect.DeepEqual makes
// a distinction between nil and empty slices, for example, even though nothing else
// really does.)
func
ObjectGoPrintDiff
(
a
,
b
Object
)
string
{
return
util
.
StringDiff
(
fmt
.
Sprintf
(
"%#v"
,
a
),
fmt
.
Sprintf
(
"%#v"
,
b
),
)
}
// metaInsertion implements conversion.MetaInsertionFactory, which lets the conversion
// package figure out how to encode our object's types and versions. These fields are
// located in our TypeMeta.
...
...
pkg/util/diff.go
0 → 100644
View file @
935e97d5
/*
Copyright 2014 Google Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
util
import
(
"encoding/json"
"fmt"
)
// StringDiff diffs a and b and returns a human readable diff.
func
StringDiff
(
a
,
b
string
)
string
{
ba
:=
[]
byte
(
a
)
bb
:=
[]
byte
(
b
)
out
:=
[]
byte
{}
i
:=
0
for
;
i
<
len
(
ba
)
&&
i
<
len
(
bb
);
i
++
{
if
ba
[
i
]
!=
bb
[
i
]
{
break
}
out
=
append
(
out
,
ba
[
i
])
}
out
=
append
(
out
,
[]
byte
(
"
\n\n
A: "
)
...
)
out
=
append
(
out
,
ba
[
i
:
]
...
)
out
=
append
(
out
,
[]
byte
(
"
\n\n
B: "
)
...
)
out
=
append
(
out
,
bb
[
i
:
]
...
)
out
=
append
(
out
,
[]
byte
(
"
\n\n
"
)
...
)
return
string
(
out
)
}
// ObjectDiff writes the two objects out as JSON and prints out the identical part of
// the objects followed by the remaining part of 'a' and finally the remaining part of 'b'.
// For debugging tests.
func
ObjectDiff
(
a
,
b
interface
{})
string
{
ab
,
err
:=
json
.
Marshal
(
a
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"a: %v"
,
err
))
}
bb
,
err
:=
json
.
Marshal
(
b
)
if
err
!=
nil
{
panic
(
fmt
.
Sprintf
(
"b: %v"
,
err
))
}
return
StringDiff
(
string
(
ab
),
string
(
bb
))
}
// ObjectGoPrintDiff is like ObjectDiff, but uses go's %#v formatter to print the
// objects, in case json isn't showing you the difference. (reflect.DeepEqual makes
// a distinction between nil and empty slices, for example, even though nothing else
// really does.)
func
ObjectGoPrintDiff
(
a
,
b
interface
{})
string
{
return
StringDiff
(
fmt
.
Sprintf
(
"%#v"
,
a
),
fmt
.
Sprintf
(
"%#v"
,
b
),
)
}
pkg/util/util.go
View file @
935e97d5
...
...
@@ -144,26 +144,6 @@ func (intstr IntOrString) MarshalJSON() ([]byte, error) {
}
}
// StringDiff diffs a and b and returns a human readable diff.
func
StringDiff
(
a
,
b
string
)
string
{
ba
:=
[]
byte
(
a
)
bb
:=
[]
byte
(
b
)
out
:=
[]
byte
{}
i
:=
0
for
;
i
<
len
(
ba
)
&&
i
<
len
(
bb
);
i
++
{
if
ba
[
i
]
!=
bb
[
i
]
{
break
}
out
=
append
(
out
,
ba
[
i
])
}
out
=
append
(
out
,
[]
byte
(
"
\n\n
A: "
)
...
)
out
=
append
(
out
,
ba
[
i
:
]
...
)
out
=
append
(
out
,
[]
byte
(
"
\n\n
B: "
)
...
)
out
=
append
(
out
,
bb
[
i
:
]
...
)
out
=
append
(
out
,
[]
byte
(
"
\n\n
"
)
...
)
return
string
(
out
)
}
// Takes a list of strings and compiles them into a list of regular expressions
func
CompileRegexps
(
regexpStrings
[]
string
)
([]
*
regexp
.
Regexp
,
error
)
{
regexps
:=
[]
*
regexp
.
Regexp
{}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment