blob: 587424a13aa5b59bbdf0cd8478e73aec21a1c8c9 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build newvdltests
package vdl_test
import (
"reflect"
"testing"
"v.io/v23/vdl"
"v.io/v23/vdl/vdltest"
)
func TestConvertNew(t *testing.T) {
for _, entry := range vdltest.AllPass() {
rvTargetPtr := reflect.New(entry.Target.Type())
if err := vdl.Convert(rvTargetPtr.Interface(), entry.Source.Interface()); err != nil {
t.Errorf("%s: error %v", entry.Name(), err)
}
if !vdl.DeepEqualReflect(rvTargetPtr.Elem(), entry.Target) {
t.Errorf("%[1]s: got %[2]T %#[2]v, want %[3]T %#[3]v", entry.Name(), rvTargetPtr.Elem(), entry.Target)
}
}
}
func TestConvertFailNew(t *testing.T) {
for _, entry := range vdltest.AllFail() {
rvTargetPtr := reflect.New(entry.Target.Type())
if err := vdl.Convert(rvTargetPtr.Interface(), entry.Source.Interface()); err == nil {
t.Errorf("%s: expected failure", entry.Name())
}
}
}