1*333d2b36SAndroid Build Coastguard Worker// Copyright 2017 Google Inc. All rights reserved. 2*333d2b36SAndroid Build Coastguard Worker// 3*333d2b36SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*333d2b36SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*333d2b36SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*333d2b36SAndroid Build Coastguard Worker// 7*333d2b36SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*333d2b36SAndroid Build Coastguard Worker// 9*333d2b36SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*333d2b36SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*333d2b36SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*333d2b36SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*333d2b36SAndroid Build Coastguard Worker// limitations under the License. 14*333d2b36SAndroid Build Coastguard Worker 15*333d2b36SAndroid Build Coastguard Workerpackage main 16*333d2b36SAndroid Build Coastguard Worker 17*333d2b36SAndroid Build Coastguard Workerimport ( 18*333d2b36SAndroid Build Coastguard Worker "bytes" 19*333d2b36SAndroid Build Coastguard Worker "testing" 20*333d2b36SAndroid Build Coastguard Worker) 21*333d2b36SAndroid Build Coastguard Worker 22*333d2b36SAndroid Build Coastguard Workervar bytesToAsmTestCases = []struct { 23*333d2b36SAndroid Build Coastguard Worker name string 24*333d2b36SAndroid Build Coastguard Worker in []byte 25*333d2b36SAndroid Build Coastguard Worker out string 26*333d2b36SAndroid Build Coastguard Worker}{ 27*333d2b36SAndroid Build Coastguard Worker { 28*333d2b36SAndroid Build Coastguard Worker name: "empty", 29*333d2b36SAndroid Build Coastguard Worker in: []byte{}, 30*333d2b36SAndroid Build Coastguard Worker out: "\n", 31*333d2b36SAndroid Build Coastguard Worker }, 32*333d2b36SAndroid Build Coastguard Worker { 33*333d2b36SAndroid Build Coastguard Worker name: "short", 34*333d2b36SAndroid Build Coastguard Worker in: []byte{0x7f, 0x45, 0x4c, 0x46, 0x02, 0x01}, 35*333d2b36SAndroid Build Coastguard Worker out: ".byte 127,69,76,70,2,1\n", 36*333d2b36SAndroid Build Coastguard Worker }, 37*333d2b36SAndroid Build Coastguard Worker { 38*333d2b36SAndroid Build Coastguard Worker name: "multiline", 39*333d2b36SAndroid Build Coastguard Worker in: []byte{0x7f, 0x45, 0x4c, 0x46, 0x02, 0x01, 0x01, 0x00, 40*333d2b36SAndroid Build Coastguard Worker 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 41*333d2b36SAndroid Build Coastguard Worker 0x30, 0x00, 0x3e, 0x00, 0x01, 0x00, 0x00, 0x00, 42*333d2b36SAndroid Build Coastguard Worker 0x50, 0x98, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 43*333d2b36SAndroid Build Coastguard Worker 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 44*333d2b36SAndroid Build Coastguard Worker 0x88, 0xd1, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 45*333d2b36SAndroid Build Coastguard Worker 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38, 0x00, 46*333d2b36SAndroid Build Coastguard Worker 0x01, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38, 0x00, 47*333d2b36SAndroid Build Coastguard Worker 0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38, 0x00}, 48*333d2b36SAndroid Build Coastguard Worker out: ".byte 127,69,76,70,2,1,1,0,0,0,0,0,0,0,0,0,48,0,62,0,1,0,0,0,80,152,2,0,0,0,0,0,64,0,0,0,0,0,0,0,136,209,18,0,0,0,0,0,0,0,0,0,64,0,56,0,1,0,0,0,64,0,56,0\n" + 49*333d2b36SAndroid Build Coastguard Worker ".byte 2,0,0,0,64,0,56,0\n", 50*333d2b36SAndroid Build Coastguard Worker }, 51*333d2b36SAndroid Build Coastguard Worker} 52*333d2b36SAndroid Build Coastguard Worker 53*333d2b36SAndroid Build Coastguard Workerfunc TestBytesToAsm(t *testing.T) { 54*333d2b36SAndroid Build Coastguard Worker for _, testcase := range bytesToAsmTestCases { 55*333d2b36SAndroid Build Coastguard Worker t.Run(testcase.name, func(t *testing.T) { 56*333d2b36SAndroid Build Coastguard Worker buf := bytes.Buffer{} 57*333d2b36SAndroid Build Coastguard Worker bytesToAsm(&buf, testcase.in) 58*333d2b36SAndroid Build Coastguard Worker if buf.String() != testcase.out { 59*333d2b36SAndroid Build Coastguard Worker t.Errorf("input: %#v\n want: %q\n got: %q\n", testcase.in, testcase.out, buf.String()) 60*333d2b36SAndroid Build Coastguard Worker } 61*333d2b36SAndroid Build Coastguard Worker }) 62*333d2b36SAndroid Build Coastguard Worker } 63*333d2b36SAndroid Build Coastguard Worker} 64