good morning!!!!

Skip to content
Snippets Groups Projects
utils_test.go 1.34 KiB
Newer Older
  • Learn to ignore specific revisions
  • // Copyright 2016 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 <http://www.gnu.org/licenses/>.
    
    package rpc
    
    import (
    	"strings"
    	"testing"
    )
    
    func TestNewID(t *testing.T) {
    	hexchars := "0123456789ABCDEFabcdef"
    	for i := 0; i < 100; i++ {
    		id := string(NewID())
    		if !strings.HasPrefix(id, "0x") {
    			t.Fatalf("invalid ID prefix, want '0x...', got %s", id)
    		}
    
    		id = id[2:]
    		if len(id) == 0 || len(id) > 32 {
    			t.Fatalf("invalid ID length, want len(id) > 0 && len(id) <= 32), got %d", len(id))
    		}
    
    		for i := 0; i < len(id); i++ {
    			if strings.IndexByte(hexchars, id[i]) == -1 {
    				t.Fatalf("unexpected byte, want any valid hex char, got %c", id[i])
    			}
    		}
    	}
    }