// Copyright 2015 The go-ethereum Authors // This file is part of the go-ethereum library. // // The go-ethereum library is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // The go-ethereum library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with the go-ethereum library. If not, see . package trie import ( "bytes" crand "crypto/rand" mrand "math/rand" "testing" "time" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/rlp" ) func init() { mrand.Seed(time.Now().Unix()) } func TestProof(t *testing.T) { trie, vals := randomTrie(500) root := trie.Hash() for _, kv := range vals { proof := trie.Prove(kv.k) if proof == nil { t.Fatalf("missing key %x while constructing proof", kv.k) } val, err := VerifyProof(root, kv.k, proof) if err != nil { t.Fatalf("VerifyProof error for key %x: %v\nraw proof: %x", kv.k, err, proof) } if !bytes.Equal(val, kv.v) { t.Fatalf("VerifyProof returned wrong value for key %x: got %x, want %x", kv.k, val, kv.v) } } } func TestOneElementProof(t *testing.T) { trie := new(Trie) updateString(trie, "k", "v") proof := trie.Prove([]byte("k")) if proof == nil { t.Fatal("nil proof") } if len(proof) != 1 { t.Error("proof should have one element") } val, err := VerifyProof(trie.Hash(), []byte("k"), proof) if err != nil { t.Fatalf("VerifyProof error: %v\nraw proof: %x", err, proof) } if !bytes.Equal(val, []byte("v")) { t.Fatalf("VerifyProof returned wrong value: got %x, want 'k'", val) } } func TestVerifyBadProof(t *testing.T) { trie, vals := randomTrie(800) root := trie.Hash() for _, kv := range vals { proof := trie.Prove(kv.k) if proof == nil { t.Fatal("nil proof") } mutateByte(proof[mrand.Intn(len(proof))]) if _, err := VerifyProof(root, kv.k, proof); err == nil { t.Fatalf("expected proof to fail for key %x", kv.k) } } } // mutateByte changes one byte in b. func mutateByte(b []byte) { for r := mrand.Intn(len(b)); ; { new := byte(mrand.Intn(255)) if new != b[r] { b[r] = new break } } } func BenchmarkProve(b *testing.B) { trie, vals := randomTrie(100) var keys []string for k := range vals { keys = append(keys, k) } b.ResetTimer() for i := 0; i < b.N; i++ { kv := vals[keys[i%len(keys)]] if trie.Prove(kv.k) == nil { b.Fatalf("nil proof for %x", kv.k) } } } func BenchmarkVerifyProof(b *testing.B) { trie, vals := randomTrie(100) root := trie.Hash() var keys []string var proofs [][]rlp.RawValue for k := range vals { keys = append(keys, k) proofs = append(proofs, trie.Prove([]byte(k))) } b.ResetTimer() for i := 0; i < b.N; i++ { im := i % len(keys) if _, err := VerifyProof(root, []byte(keys[im]), proofs[im]); err != nil { b.Fatalf("key %x: %v", keys[im], err) } } } func randomTrie(n int) (*Trie, map[string]*kv) { trie := new(Trie) vals := make(map[string]*kv) for i := byte(0); i < 100; i++ { value := &kv{common.LeftPadBytes([]byte{i}, 32), []byte{i}, false} value2 := &kv{common.LeftPadBytes([]byte{i + 10}, 32), []byte{i}, false} trie.Update(value.k, value.v) trie.Update(value2.k, value2.v) vals[string(value.k)] = value vals[string(value2.k)] = value2 } for i := 0; i < n; i++ { value := &kv{randBytes(32), randBytes(20), false} trie.Update(value.k, value.v) vals[string(value.k)] = value } return trie, vals } func randBytes(n int) []byte { r := make([]byte, n) crand.Read(r) return r } ranches/2018Q3'>branches/2018Q3 FreeBSD Ports (https://github.com/freebsd/freebsd-ports)
aboutsummaryrefslogtreecommitdiffstats
path: root/games
ModeNameSize
d---------0verkill146logstatsplain
d---------3dc178logstatsplain
d---------3dpong146logstatsplain
d---------44bsd-hunt178logstatsplain
d---------4stattack212logstatsplain
d---------54321178logstatsplain
d---------BillardGL178logstatsplain
d---------CaribbeanStud178logstatsplain
d---------HeroesOfMightAndMagic139logstatsplain
d---------KnightCap141logstatsplain
-rw-r--r--Makefile23152logstatsplainblame
d---------abe146logstatsplain
d---------abridge109logstatsplain
d---------abuse178logstatsplain
d---------abuse_sdl178logstatsplain
d---------acm178logstatsplain
d---------actioncube178logstatsplain
d---------actx217logstatsplain
d---------adgali178logstatsplain
d---------adom146logstatsplain
d---------adonthell178logstatsplain
d---------aestats178logstatsplain
d---------affenspiel109logstatsplain
d---------afternoonstalker178logstatsplain
d---------agame178logstatsplain
d---------airrox178logstatsplain
d---------alephone-data217logstatsplain
d---------alephone-scenarios217logstatsplain
d---------alephone217logstatsplain
d---------alienarena-data146logstatsplain
d---------alienarena217logstatsplain
d---------alienblaster146logstatsplain
d---------alienwave109logstatsplain
d---------allacrost217logstatsplain
d---------amoebax146logstatsplain
d---------amphetamine178logstatsplain
d---------amy146logstatsplain
d---------an146logstatsplain
d---------anagramarama178logstatsplain
d---------angband178logstatsplain
d---------annelid178logstatsplain
d---------antipolix178logstatsplain
d---------antrix146logstatsplain
d---------aop178logstatsplain
d---------apoolGL178logstatsplain
d---------aqbubble146logstatsplain
d---------armagetron178logstatsplain
d---------asc217logstatsplain
d---------asciiquarium109logstatsplain
d---------assaultcube178logstatsplain
d---------atitd221logstatsplain
d---------atlantikdesigner146logstatsplain
d---------atomix185logstatsplain
d---------atr3d178logstatsplain
d---------atris-sounds146logstatsplain
d---------atris146logstatsplain
d---------avanor146logstatsplain
d---------awale146logstatsplain
d---------awele141logstatsplain
d---------balazar178logstatsplain
d---------balazarbrothers178logstatsplain
d---------barrage178logstatsplain
d---------bass185logstatsplain
d---------bastet178logstatsplain
d---------battalion178logstatsplain
d---------battleball141logstatsplain
d---------belooted146logstatsplain
d---------bfm178logstatsplain
d---------biloba178logstatsplain
d---------biorythm178logstatsplain
d---------bitefusion141logstatsplain
d---------blackjack141logstatsplain
d---------blinkensisters178logstatsplain
d---------blobandconquer178logstatsplain
d---------bloboats178logstatsplain
d---------blobwars178logstatsplain
d---------block178logstatsplain
d---------blockade141logstatsplain
d---------blokish141logstatsplain
d---------bloodfrontier178logstatsplain
d---------blue146logstatsplain
d---------bogged141logstatsplain
d---------bomb178logstatsplain
d---------bomberclone178logstatsplain
d---------bomberinstinct178logstatsplain
d---------bombermaze178logstatsplain
d---------bomns146logstatsplain
d---------boswars178logstatsplain
d---------braincurses146logstatsplain
d---------briquolo178logstatsplain
d---------brutalchess178logstatsplain
d---------bs109logstatsplain
d---------bsdgames178logstatsplain
d---------bsdtris178logstatsplain
d---------bsp146logstatsplain
d---------bubbros178logstatsplain
d---------bugsquish178logstatsplain
d---------bugsx141logstatsplain
d---------bumprace146logstatsplain
d---------burgerspace109logstatsplain
d---------burrtools109logstatsplain
d---------bygfoot178logstatsplain
d---------bzflag178logstatsplain
d---------cake180logstatsplain
d---------cardpics146logstatsplain
d---------cavezofphear146logstatsplain
d---------cchess146logstatsplain
d---------ceferino146logstatsplain
d---------cgoban141logstatsplain
d---------cgoban2109logstatsplain
d---------chanta178logstatsplain
d---------cheech146logstatsplain
d---------childsplay178logstatsplain
d---------childsplay_plugins178logstatsplain
d---------chromium-bsu212logstatsplain
d---------chromium212logstatsplain
d---------circuslinux178logstatsplain
d---------clanbomber178logstatsplain
d---------cleanq3178logstatsplain
d---------columns178logstatsplain
d---------concentration178logstatsplain
d---------connect4178logstatsplain
d---------connectfive178logstatsplain
d---------conquest224logstatsplain
d---------construo146logstatsplain
d---------corewars178logstatsplain
d---------cosmo178logstatsplain
d---------cowsay178logstatsplain
d---------crack-attack146logstatsplain
d---------crafty-open-large178logstatsplain
d---------crafty-open-medium178logstatsplain
d---------crafty-tablebase-no-pawn219logstatsplain
d---------crafty-tablebase-pawn219logstatsplain
d---------crafty251logstatsplain
d---------crimson146logstatsplain
d---------criticalmass141logstatsplain
d---------crossfire-client141logstatsplain
d---------crossfire-server178logstatsplain
d---------cryptoslam109logstatsplain
d---------csmash178logstatsplain
d---------ctris109logstatsplain
d---------cube178logstatsplain
d---------cultivation178logstatsplain
d---------cursive141logstatsplain
d---------d2x180logstatsplain
d---------daimonin-client178logstatsplain
d---------daimonin178logstatsplain
d---------dangen146logstatsplain
d---------dangerdeep-data109logstatsplain
d---------dangerdeep141logstatsplain
d---------darkplaces141logstatsplain
d---------deal141logstatsplain
d---------defendguin141logstatsplain
d---------demonquake180logstatsplain
d---------deng178logstatsplain
d---------diameter178logstatsplain
d---------digger-vgl178logstatsplain
d---------djgame2178logstatsplain
d---------dmjava146logstatsplain
d---------dodgindiamond2217logstatsplain
d---------dontspace146logstatsplain
d---------doom-data222logstatsplain
d---------doom-freedoom109logstatsplain
d---------doom-hacx109logstatsplain
d---------doom-hr180logstatsplain
d---------doom-hr2109logstatsplain
d---------doom-wolfendoom146logstatsplain
d---------doom178logstatsplain
d---------doomlegacy178logstatsplain
d---------dopewars146logstatsplain
d---------drm178logstatsplain
d---------dsnake178logstatsplain
d---------duel178logstatsplain
d---------duke3d-data222logstatsplain
d---------dungeon178logstatsplain
d---------dungeoncrawl141logstatsplain
d---------easysok146logstatsplain
d---------eboard217logstatsplain
d---------editss178logstatsplain
d---------eduke32146logstatsplain
d---------egl178logstatsplain
d---------egoboo217logstatsplain
d---------eif146logstatsplain
d---------eights141logstatsplain
d---------einstein217logstatsplain
d---------el-data109logstatsplain
d---------el141logstatsplain
d---------emacs-chess185logstatsplain
d---------ember178logstatsplain
d---------empire141logstatsplain
d---------endgame-singularity-music146logstatsplain
d---------endgame-singularity146logstatsplain
d---------enigma217logstatsplain
d---------ensemblist141logstatsplain
d---------etuxracer178logstatsplain
d---------euchre141logstatsplain
d---------evilfinder178logstatsplain
d---------evq3178logstatsplain
d---------excido178logstatsplain
d---------exhaust-doc146logstatsplain
d---------exhaust-ma180logstatsplain
d---------exhaust180logstatsplain
d---------exmars178logstatsplain
d---------exult178logstatsplain
d---------ezquake178logstatsplain
d---------falconseye178logstatsplain
d---------farblazer178logstatsplain
d---------fargoal178logstatsplain
d---------fgfs-base109logstatsplain
d---------fgkicker185logstatsplain
d---------fgsd141logstatsplain
d---------fillets-ng146logstatsplain
d---------filters178logstatsplain
d---------fishsupper146logstatsplain
d---------fkiss109logstatsplain
d---------flightgear-aircraft109logstatsplain
d---------flightgear-aircrafts109logstatsplain
d---------flightgear-atlas185logstatsplain
d---------flightgear-data109logstatsplain
d---------flightgear-mb339-pan109logstatsplain
d---------flightgear185logstatsplain
d---------flobopuyo146logstatsplain
d---------flyhard146logstatsplain
d---------flying141logstatsplain
d---------fmars178logstatsplain
d---------foobillard178logstatsplain
d---------formido217logstatsplain
d---------fortunate146logstatsplain
d---------fotaq185logstatsplain
d---------freebsd-games178logstatsplain
d---------freecell-solver146logstatsplain
d---------freeciv-nox1136logstatsplain
d---------freeciv-sounds146logstatsplain
d---------freeciv146logstatsplain
d---------freecol178logstatsplain
d---------freedoko146logstatsplain
d---------freedroid146logstatsplain
d---------freedroidrpg146logstatsplain
d---------freeorion217logstatsplain
d---------freera217logstatsplain
d---------freesci146logstatsplain
d---------freesweep178logstatsplain
d---------freesynd178logstatsplain
d---------freetennis141logstatsplain
d---------fretsonfire-data146logstatsplain
d---------fretsonfire178logstatsplain
d---------frikqcc141logstatsplain
d---------frotz146logstatsplain
d---------frozenbubble217logstatsplain
d---------fteqw141logstatsplain
d---------ftjava178logstatsplain
d---------fuhquake178logstatsplain
d---------funnyboat178logstatsplain
d---------fwp217logstatsplain
d---------fxsudoku141logstatsplain
d---------galaxis109logstatsplain
d---------galaxyhack178logstatsplain
d---------galaxymage178logstatsplain
d---------garith109logstatsplain
d---------gbottler146logstatsplain
d---------gcompris178logstatsplain
d---------gdado178logstatsplain
d---------geki2146logstatsplain
d---------geki3146logstatsplain
d---------gemdropx178logstatsplain
d---------ggo178logstatsplain
d---------ggz-client-libs178logstatsplain
d---------ggz-gtk-client146logstatsplain
d---------ggz-gtk-games146logstatsplain
d---------ggz-kde-client178logstatsplain
d---------ggz-sdl-games178logstatsplain
d---------ggz-txt-client178logstatsplain
d---------gillo178logstatsplain
d---------gish-demo178logstatsplain
d---------gl-117178logstatsplain
d---------glasteroids178logstatsplain
d---------glaxium178logstatsplain
d---------glbsp178logstatsplain
d---------glchess185logstatsplain
d---------glest-data109logstatsplain
d---------glest178logstatsplain
d---------glife146logstatsplain
d---------glmaze178logstatsplain
d---------glob2217logstatsplain
d---------glpuzzle178logstatsplain
d---------gltron178logstatsplain
d---------gma178logstatsplain
d---------gmastermind146logstatsplain
d---------gmines146logstatsplain
d---------gnarr178logstatsplain
d---------gnmm178logstatsplain
d---------gno3dtet178logstatsplain
d---------gnome-games-extra-data146logstatsplain
d---------gnome-games217logstatsplain
d---------gnomeattacks178logstatsplain
d---------gnomebreakout178logstatsplain
d---------gnomechess178logstatsplain
d---------gnomekiss178logstatsplain
d---------gnomememoryblocks178logstatsplain
d---------gnomermind146logstatsplain
d---------gnomesudoku146logstatsplain
d---------gnono146logstatsplain
d---------gnubg178logstatsplain
d---------gnuchess175logstatsplain
d---------gnudoku146logstatsplain
d---------gnugo141logstatsplain
d---------gnurobots217logstatsplain
d---------gnushogi221logstatsplain
d---------gnustep-ladder146logstatsplain
d---------gnustep-sudoku146logstatsplain
d---------golddig178logstatsplain
d---------gomoku.app146logstatsplain
d---------goonies178logstatsplain
d---------gracer178logstatsplain
d---------grande178logstatsplain
d---------greed141logstatsplain
d---------gretools146logstatsplain
d---------grhino178logstatsplain
d---------gridlock146logstatsplain
d---------gru146logstatsplain
d---------grubik146logstatsplain
d---------grubinvaders217logstatsplain
d---------gshisen146logstatsplain
d---------gtetrinet178logstatsplain
d---------gtkabale178logstatsplain
d---------gtkatlantic178logstatsplain
d---------gtkballs178logstatsplain
d---------gtklife109logstatsplain
d---------gtkpool178logstatsplain
d---------gtkradiant178logstatsplain
d---------gtktetcolor146logstatsplain
d---------gturing178logstatsplain
d---------gtypist146logstatsplain
d---------gweled217logstatsplain
d---------halflifeserver146logstatsplain
d---------hangman178logstatsplain
d---------hattrickorganizer146logstatsplain
d---------heretic178logstatsplain
d---------heroes178logstatsplain
d---------hex-a-hop178logstatsplain
d---------hex178logstatsplain
d---------hexxagon178logstatsplain
d---------highmoon146logstatsplain
d---------hinversi146logstatsplain
d---------hlserver-admin146logstatsplain
d---------hlserver-cs146logstatsplain
d---------hlserver-dod146logstatsplain
d---------hlserver-esf146logstatsplain
d---------hlserver-existence146logstatsplain
d---------hlserver-fa146logstatsplain
d---------hlserver-flf146logstatsplain
d---------hlserver-glbwar146logstatsplain
d---------hlserver-heroes146logstatsplain
d---------hlserver-ns146logstatsplain
d---------hlserver-opfor146logstatsplain
d---------hlserver-psychostats178logstatsplain
d---------hlserver-si146logstatsplain
d---------hlserver-ts146logstatsplain
d---------hlserver-vs146logstatsplain
d---------hlserver-wasteland146logstatsplain
d---------hlserver-wizwars146logstatsplain
d---------hlstats146logstatsplain
d---------hlstatsx146logstatsplain
d---------hohlin178logstatsplain
d---------holotz-castle178logstatsplain
d---------icbm3d178logstatsplain
d---------icebreaker178logstatsplain
d---------ifm146logstatsplain
d---------imaze178logstatsplain
d---------inform178logstatsplain
d---------interlogic109logstatsplain
d---------ioquake3217logstatsplain
d---------iourbanterror217logstatsplain
d---------ishido146logstatsplain
d---------ivan217logstatsplain
d---------jaggedalliance2185logstatsplain
d---------jchessboard109logstatsplain
d---------jetpack178logstatsplain
d---------jfduke3d146logstatsplain
d---------jfk217logstatsplain
d---------jigsaw146logstatsplain
d---------jigzo178logstatsplain
d---------jin178logstatsplain
d---------joequake217logstatsplain
d---------jools178logstatsplain
d---------jtans178logstatsplain
d---------jumpnbump178logstatsplain
d---------jzip178logstatsplain
d---------kaid178logstatsplain
d---------kamikaze146logstatsplain
d---------kanatest146logstatsplain
d---------kardsgt146logstatsplain
d---------kbilliards146logstatsplain
d---------kcheckers141logstatsplain
d---------kdegames3178logstatsplain
d---------kdegames4178logstatsplain
d---------kfreerings178logstatsplain
d---------kiki178logstatsplain
d---------kimboot178logstatsplain
d---------klavaro146logstatsplain
d---------klondike146logstatsplain
d---------kmastermind146logstatsplain
d---------kmquake2178logstatsplain
d---------knights-kde4178logstatsplain
d---------knights178logstatsplain
d---------kobodeluxe178logstatsplain
d---------koth141logstatsplain
d---------kpicframer178logstatsplain
d---------kpictorial146logstatsplain
d---------kpuzzle178logstatsplain
d---------krosswordplayer178logstatsplain
d---------kslide178logstatsplain
d---------ksudoku178logstatsplain
d---------ktritoc178logstatsplain
d---------kwappen146logstatsplain
d---------ladder178logstatsplain
d---------lapispuzzle146logstatsplain
d---------latrine178logstatsplain
d---------lbreakout178logstatsplain
d---------lbreakout2185logstatsplain
d---------ldmud258logstatsplain
d---------lexter185logstatsplain
d---------lgeneral-data178logstatsplain
d---------lgeneral178logstatsplain
d---------lianliankan178logstatsplain
d---------libdungeonmaker178logstatsplain
d---------libfov178logstatsplain
d---------libggz216logstatsplain
d---------libmaitretarot146logstatsplain
d---------libmt_client146logstatsplain
d---------libshhcards178logstatsplain
d---------lincity-ng178logstatsplain
d---------lincity146logstatsplain
d---------linux-alienarena217logstatsplain
d---------linux-americasarmy146logstatsplain
d---------linux-darwinia-demo217logstatsplain
d---------linux-defcon217logstatsplain
d---------linux-doom3-demo178logstatsplain
d---------linux-doom3178logstatsplain
d---------linux-enemyterritory-etpro146logstatsplain
d---------linux-enemyterritory-etpub146logstatsplain
d---------linux-enemyterritory-fortress146logstatsplain
d---------linux-enemyterritory-jaymod-21146logstatsplain
d---------linux-enemyterritory-jaymod146logstatsplain
d---------linux-enemyterritory-omni-bot-0660146logstatsplain
d---------linux-enemyterritory-omni-bot146logstatsplain
d---------linux-enemyterritory-shrub109logstatsplain
d---------linux-enemyterritory-tce146logstatsplain
d---------linux-enemyterritory178logstatsplain
d---------linux-goodway141logstatsplain
d---------linux-nwnclient178logstatsplain
d---------linux-nwserver178logstatsplain
d---------linux-quake3-demo178logstatsplain
d---------linux-quake3146logstatsplain