Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
neo
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
Kirill Smelkov
neo
Commits
eb0e516f
Commit
eb0e516f
authored
Oct 15, 2017
by
Kirill Smelkov
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
X check hash result and error if mismatch (zhash.* part); neotest part pending
parent
2928fd63
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
43 additions
and
23 deletions
+43
-23
go/neo/t/neotest
go/neo/t/neotest
+7
-5
go/neo/t/zhash.go
go/neo/t/zhash.go
+12
-6
go/neo/t/zhash.py
go/neo/t/zhash.py
+24
-12
No files found.
go/neo/t/neotest
View file @
eb0e516f
...
...
@@ -22,6 +22,8 @@
set
-o
pipefail
# FIXME warn if/when thermal throttling activates - XXX how?
# ---- deploy NEO for tests/benchmarks at a node ----
die
()
{
...
...
@@ -787,9 +789,9 @@ bench() {
url
=
$2
# nrun time demo-zbigarray read $url
nrun ./zhash.py
--bench
=
$topic
/%s
--
$hashfunc
$url
nrun ./zhash.py
--
check
=
XXX
--
bench
=
$topic
/%s
--
$hashfunc
$url
echo
-e
"
\n
#
${
Npar
}
clients in parallel"
nrunpar ./zhash.py
--bench
=
$topic
/%s-P
$Npar
--
$hashfunc
$url
nrunpar ./zhash.py
--
check
=
XXX
--
bench
=
$topic
/%s-P
$Npar
--
$hashfunc
$url
if
[[
$url
==
zeo://
*
]]
;
then
echo
"(skipping zhash.go on ZEO -- Cgo does not support zeo:// protocol)"
...
...
@@ -803,11 +805,11 @@ bench() {
bench_go
()
{
topic
=
$1
url
=
$2
nrun ./zhash_go
--bench
=
$topic
/%s
--log_dir
=
$log
-
$hashfunc
$url
nrun ./zhash_go
--bench
=
$topic
/%s
--log_dir
=
$log
-
$hashfunc
-useprefetch
$url
nrun ./zhash_go
-
check
=
XXX
-
-bench
=
$topic
/%s
--log_dir
=
$log
-
$hashfunc
$url
nrun ./zhash_go
-
check
=
XXX
-
-bench
=
$topic
/%s
--log_dir
=
$log
-
$hashfunc
-useprefetch
$url
echo
-e
"
\n
#
${
Npar
}
clients in parallel"
nrunpar ./zhash_go
--bench
=
$topic
/%s-P
$Npar
--log_dir
=
$log
-
$hashfunc
$url
nrunpar ./zhash_go
-
check
=
XXX
-
-bench
=
$topic
/%s-P
$Npar
--log_dir
=
$log
-
$hashfunc
$url
}
...
...
go/neo/t/zhash.go
View file @
eb0e516f
...
...
@@ -69,6 +69,7 @@ func main() {
fsha1
:=
flag
.
Bool
(
"sha1"
,
false
,
"compute SHA1 cryptographic hash"
)
fsha256
:=
flag
.
Bool
(
"sha256"
,
false
,
"compute SHA256 cryptographic hash"
)
fsha512
:=
flag
.
Bool
(
"sha512"
,
false
,
"compute SHA512 cryptographic hash"
)
fcheck
:=
flag
.
String
(
"check"
,
""
,
"verify resulting hash to be = expected"
)
fbench
:=
flag
.
String
(
"bench"
,
""
,
"use benchmarking format for output"
)
useprefetch
:=
flag
.
Bool
(
"useprefetch"
,
false
,
"prefetch loaded objects"
)
flag
.
Parse
()
...
...
@@ -105,13 +106,13 @@ func main() {
log
.
Fatal
(
ctx
,
"no hash function specified"
)
}
err
:=
zhash
(
ctx
,
url
,
h
,
*
useprefetch
,
*
fbench
)
err
:=
zhash
(
ctx
,
url
,
h
,
*
useprefetch
,
*
fbench
,
*
fcheck
)
if
err
!=
nil
{
log
.
Fatal
(
ctx
,
err
)
}
}
func
zhash
(
ctx
context
.
Context
,
url
string
,
h
hasher
,
useprefetch
bool
,
bench
string
)
(
err
error
)
{
func
zhash
(
ctx
context
.
Context
,
url
string
,
h
hasher
,
useprefetch
bool
,
bench
,
check
string
)
(
err
error
)
{
defer
task
.
Running
(
&
ctx
,
"zhash"
)(
&
err
)
stor
,
err
:=
zodb
.
OpenStorageURL
(
ctx
,
url
)
...
...
@@ -221,14 +222,19 @@ loop:
if
useprefetch
{
x
+=
fmt
.
Sprintf
(
"+prefetch%d"
,
nprefetch
)
}
hresult
:=
fmt
.
Sprintf
(
"%s:%x"
,
h
.
name
,
h
.
Sum
(
nil
))
if
bench
==
""
{
fmt
.
Printf
(
"%s
:%x
; oid=0..%d nread=%d t=%s (%s / object) x=%s
\n
"
,
h
.
name
,
h
.
Sum
(
nil
)
,
oid
-
1
,
nread
,
δt
,
δt
/
time
.
Duration
(
oid
),
x
)
// XXX /oid cast ?
fmt
.
Printf
(
"%s ; oid=0..%d nread=%d t=%s (%s / object) x=%s
\n
"
,
h
result
,
oid
-
1
,
nread
,
δt
,
δt
/
time
.
Duration
(
oid
),
x
)
// XXX /oid cast ?
}
else
{
topic
:=
fmt
.
Sprintf
(
bench
,
x
)
// XXX -> better text/template
fmt
.
Printf
(
"Benchmark%s 1 %.1f µs/object
\t
# %s
:%x
oid=0..%d nread=%d t=%s
\n
"
,
fmt
.
Printf
(
"Benchmark%s 1 %.1f µs/object
\t
# %s oid=0..%d nread=%d t=%s
\n
"
,
topic
,
float64
(
δt
)
/
float64
(
oid
)
/
float64
(
time
.
Microsecond
),
h
.
name
,
h
.
Sum
(
nil
),
oid
-
1
,
nread
,
δt
)
hresult
,
oid
-
1
,
nread
,
δt
)
}
if
check
!=
""
&&
hresult
!=
check
{
return
fmt
.
Errof
(
"%s: hash mismatch: expected %s ; got %s
\t
# x=%s"
,
url
,
check
,
hresult
,
x
)
}
return
nil
...
...
go/neo/t/zhash.py
View file @
eb0e516f
...
...
@@ -84,25 +84,28 @@ def usage(w):
options:
--null don't compute hash - just read data
--adler32 compute Adler32 checksum
--crc32 compute CRC32 checksum
--sha1 compute SHA1 cryptographic hash
--sha256 compute SHA256 cryptographic hash
--sha512 compute SHA512 cryptographic hash
--bench=<topic> use benchmarking format for output
--null don't compute hash - just read data
--adler32 compute Adler32 checksum
--crc32 compute CRC32 checksum
--sha1 compute SHA1 cryptographic hash
--sha256 compute SHA256 cryptographic hash
--sha512 compute SHA512 cryptographic hash
--check=<expected> verify resulting hash to be = expected
--bench=<topic> use benchmarking format for output
"""
,
file
=
w
)
def
main
():
try
:
optv
,
argv
=
getopt
(
sys
.
argv
[
1
:],
"h"
,
[
"help"
,
"bench="
]
+
hashRegistry
.
keys
())
optv
,
argv
=
getopt
(
sys
.
argv
[
1
:],
"h"
,
[
"help"
,
"
check="
,
"
bench="
]
+
hashRegistry
.
keys
())
except
GetoptError
as
e
:
print
(
"E: %s"
%
e
,
file
=
sys
.
stderr
)
usage
(
sys
.
stderr
)
exit
(
1
)
bench
=
None
check
=
None
for
opt
,
arg
in
optv
:
if
opt
in
(
"-h"
,
"--help"
):
print
(
__doc__
)
...
...
@@ -113,6 +116,10 @@ def main():
bench
=
arg
continue
if
opt
in
(
"--check"
):
check
=
arg
continue
opt
=
opt
.
lstrip
(
"-"
)
hctor
=
hashRegistry
[
opt
]
h
=
hctor
()
...
...
@@ -150,13 +157,18 @@ def main():
dt
=
tend
-
tstart
x
=
"zhash.py"
hresult
=
"%s:%s"
%
(
h
.
name
,
h
.
hexdigest
())
if
bench
is
None
:
print
(
'%s
:%s
; oid=0..%d nread=%d t=%.3fs (%.1fμs / object) x=%s'
%
\
(
h
.
name
,
h
.
hexdigest
()
,
oid
-
1
,
nread
,
dt
,
dt
*
1E6
/
oid
,
x
))
print
(
'%s ; oid=0..%d nread=%d t=%.3fs (%.1fμs / object) x=%s'
%
\
(
h
result
,
oid
-
1
,
nread
,
dt
,
dt
*
1E6
/
oid
,
x
))
else
:
topic
=
bench
%
x
print
(
'Benchmark%s 1 %.1f µs/object
\
t
# %s:%s oid=0..%d nread=%d t=%.3fs'
%
\
(
topic
,
dt
*
1E6
/
oid
,
h
.
name
,
h
.
hexdigest
(),
oid
-
1
,
nread
,
dt
))
(
topic
,
dt
*
1E6
/
oid
,
hresult
,
oid
-
1
,
nread
,
dt
))
if
check
!=
None
and
hresult
!=
check
:
print
(
"%s: hash mismatch: expected %s ; got %s
\
t
# x=%s"
%
(
url
,
check
,
hresult
,
x
),
file
=
sys
.
stderr
)
sys
.
exit
(
1
)
if
__name__
==
'__main__'
:
main
()
Kirill Smelkov
@kirr
mentioned in commit
3f578560
·
Jul 12, 2018
mentioned in commit
3f578560
mentioned in commit 3f578560c49222cf4b0f8ba2b408d3db9c94444d
Toggle commit list
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