github.com/apache/beam/sdks/v2@v2.48.2/go/test/regression/coders/fromyaml/fromyaml_test.go (about)

     1  // Licensed to the Apache Software Foundation (ASF) under one or more
     2  // contributor license agreements.  See the NOTICE file distributed with
     3  // this work for additional information regarding copyright ownership.
     4  // The ASF licenses this file to You under the Apache License, Version 2.0
     5  // (the "License"); you may not use this file except in compliance with
     6  // the License.  You may obtain a copy of the License at
     7  //
     8  //    http://www.apache.org/licenses/LICENSE-2.0
     9  //
    10  // Unless required by applicable law or agreed to in writing, software
    11  // distributed under the License is distributed on an "AS IS" BASIS,
    12  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  // See the License for the specific language governing permissions and
    14  // limitations under the License.
    15  
    16  package main
    17  
    18  import (
    19  	"bytes"
    20  	"log"
    21  	"os"
    22  	"testing"
    23  
    24  	yaml "gopkg.in/yaml.v2"
    25  )
    26  
    27  func TestStandardCoders(t *testing.T) {
    28  	data, err := os.ReadFile(yamlPath)
    29  	if err != nil {
    30  		log.Fatalf("Couldn't read %v: %v", yamlPath, err)
    31  	}
    32  	specs := bytes.Split(data, []byte("\n---\n"))
    33  	var l logLogger
    34  	for _, data := range specs {
    35  		cs := Spec{Log: t}
    36  		if err := yaml.Unmarshal(data, &cs); err != nil {
    37  			l.Logf("unable to parse yaml: %v %q", err, data)
    38  			continue
    39  		}
    40  		t.Run(cs.Coder.Urn, func(t *testing.T) {
    41  			if err := cs.testStandardCoder(); err != nil {
    42  				t.Errorf("Failed \"%v\": %v", cs.Coder, err)
    43  			}
    44  		})
    45  	}
    46  
    47  }