github.com/nya3jp/tast@v0.0.0-20230601000426-85c8e4d83a9b/src/go.chromium.org/tast/core/testing/cellularconst/cellularconst.go (about)

     1  // Copyright 2023 The ChromiumOS Authors
     2  // Use of this source code is governed by a BSD-style license that can be
     3  // found in the LICENSE file.
     4  
     5  // Package cellularconst defines the constants for Cellular
     6  // This package is defined under common/ as they might be used in both
     7  // local and remote tests.
     8  package cellularconst
     9  
    10  import (
    11  	"fmt"
    12  
    13  	"go.chromium.org/tast/core/errors"
    14  )
    15  
    16  // ModemType is the type of modem used in a device.
    17  type ModemType uint32
    18  
    19  // Supported modem types.
    20  const (
    21  	ModemTypeUnknown ModemType = iota
    22  	ModemTypeL850
    23  	ModemTypeNL668
    24  	ModemTypeFM350
    25  	ModemTypeFM101
    26  	ModemTypeSC7180 // trogdor
    27  	ModemTypeSC7280 // herobrine
    28  )
    29  
    30  func (e ModemType) String() string {
    31  	switch e {
    32  	case ModemTypeL850:
    33  		return "L850"
    34  	case ModemTypeNL668:
    35  		return "NL668"
    36  	case ModemTypeFM350:
    37  		return "FM350"
    38  	case ModemTypeFM101:
    39  		return "FM101"
    40  	case ModemTypeSC7180:
    41  		return "SC7180"
    42  	case ModemTypeSC7280:
    43  		return "SC7280"
    44  	default:
    45  		return fmt.Sprintf("%d", int(e))
    46  	}
    47  }
    48  
    49  // DeviceInfo provides a mapping between variant and modem type.
    50  type DeviceInfo struct {
    51  	ModemVariant string
    52  	Board        string
    53  	Modem        ModemType
    54  }
    55  
    56  var (
    57  	// KnownVariants mapping between variant and modem type.
    58  	KnownVariants = map[string]DeviceInfo{
    59  		"anahera_l850":       {"anahera_l850", "brya", ModemTypeL850},
    60  		"brya_fm350":         {"brya_fm350", "brya", ModemTypeFM350},
    61  		"brya_l850":          {"brya_l850", "brya", ModemTypeL850},
    62  		"crota_fm101":        {"crota_fm101", "brya", ModemTypeFM101},
    63  		"primus_l850":        {"primus_l850", "brya", ModemTypeL850},
    64  		"redrix_fm350":       {"redrix_fm350", "brya", ModemTypeFM350},
    65  		"redrix_l850":        {"redrix_l850", "brya", ModemTypeL850},
    66  		"vell_fm350":         {"vell_fm350", "brya", ModemTypeFM350},
    67  		"astronaut":          {"astronaut", "coral", ModemTypeL850},
    68  		"krabby_fm101":       {"krabby_fm101", "corsola", ModemTypeFM101},
    69  		"rusty_fm101":        {"rusty_fm101", "corsola", ModemTypeFM101},
    70  		"steelix_fm101":      {"steelix_fm101", "corsola", ModemTypeFM101},
    71  		"beadrix_nl668am":    {"beadrix_nl668am", "dedede", ModemTypeNL668},
    72  		"boten":              {"boten", "dedede", ModemTypeL850},
    73  		"bugzzy_l850gl":      {"bugzzy_l850gl", "dedede", ModemTypeL850},
    74  		"bugzzy_nl668am":     {"bugzzy_nl668am", "dedede", ModemTypeNL668},
    75  		"cret":               {"cret", "dedede", ModemTypeL850},
    76  		"drawper_l850gl":     {"drawper_l850gl", "dedede", ModemTypeL850},
    77  		"kracko_nl668am":     {"kracko_nl668am", "dedede", ModemTypeNL668},
    78  		"kracko_fm101_cat12": {"kracko_fm101_cat12", "dedede", ModemTypeFM101},
    79  		"kracko_fm101_cat6":  {"kracko_fm101_cat6", "dedede", ModemTypeFM101},
    80  		"metaknight":         {"metaknight", "dedede", ModemTypeL850},
    81  		"sasuke":             {"sasuke", "dedede", ModemTypeL850},
    82  		"sasuke_nl668am":     {"sasuke_nl668am", "dedede", ModemTypeNL668},
    83  		"sasukette":          {"sasukette", "dedede", ModemTypeL850},
    84  		"storo360_l850gl":    {"storo360_l850gl", "dedede", ModemTypeL850},
    85  		"storo360_nl668am":   {"storo360_nl668am", "dedede", ModemTypeNL668},
    86  		"storo_l850gl":       {"storo_l850gl", "dedede", ModemTypeL850},
    87  		"storo_nl668am":      {"storo_nl668am", "dedede", ModemTypeNL668},
    88  		"guybrush360_l850":   {"guybrush360_l850", "guybrush", ModemTypeL850},
    89  		"guybrush_fm350":     {"guybrush_fm350", "guybrush", ModemTypeFM350},
    90  		"nipperkin":          {"nipperkin", "guybrush", ModemTypeL850},
    91  		"jinlon":             {"jinlon", "hatch", ModemTypeL850},
    92  		"evoker_sc7280":      {"evoker_sc7280", "herobrine", ModemTypeSC7280},
    93  		"herobrine_sc7280":   {"herobrine_sc7280", "herobrine", ModemTypeSC7280},
    94  		"hoglin_sc7280":      {"hoglin_sc7280", "herobrine", ModemTypeSC7280},
    95  		"piglin_sc7280":      {"piglin_sc7280", "herobrine", ModemTypeSC7280},
    96  		"villager_sc7280":    {"villager_sc7280", "herobrine", ModemTypeSC7280},
    97  		"zoglin_sc7280":      {"zoglin_sc7280", "herobrine", ModemTypeSC7280},
    98  		"zombie_sc7280":      {"zombie_sc7280", "herobrine", ModemTypeSC7280},
    99  		"gooey":              {"gooey", "keeby", ModemTypeL850},
   100  		"craask_fm101":       {"craask_fm101", "nissa", ModemTypeFM101},
   101  		"nivviks_fm101":      {"nivviks_fm101", "nissa", ModemTypeFM101},
   102  		"pujjo_fm101":        {"pujjo_fm101", "nissa", ModemTypeFM101},
   103  		"dood":               {"dood", "octopus", ModemTypeL850},
   104  		"droid":              {"droid", "octopus", ModemTypeL850},
   105  		"fleex":              {"fleex", "octopus", ModemTypeL850},
   106  		"garg":               {"garg", "octopus", ModemTypeL850},
   107  		"rex_fm101":          {"rex_fm101", "rex", ModemTypeFM101},
   108  		"rex_fm350":          {"rex_fm350", "rex", ModemTypeFM350},
   109  		"arcada":             {"arcada", "sarien", ModemTypeL850},
   110  		"sarien":             {"sarien", "sarien", ModemTypeL850},
   111  		"coachz":             {"coachz", "strongbad", ModemTypeSC7180},
   112  		"quackingstick":      {"quackingstick", "strongbad", ModemTypeSC7180},
   113  		"kingoftown":         {"kingoftown", "trogdor", ModemTypeSC7180},
   114  		"lazor":              {"lazor", "trogdor", ModemTypeSC7180},
   115  		"limozeen":           {"limozeen", "trogdor", ModemTypeSC7180},
   116  		"pazquel":            {"pazquel", "trogdor", ModemTypeSC7180},
   117  		"pazquel360":         {"pazquel360", "trogdor", ModemTypeSC7180},
   118  		"skyrim_fm101":       {"skyrim_fm101", "skyrim", ModemTypeFM101},
   119  		"vilboz":             {"vilboz", "zork", ModemTypeNL668},
   120  		"vilboz360":          {"vilboz360", "zork", ModemTypeL850},
   121  	}
   122  )
   123  
   124  // GetModemTypeFromVariant gets DUT's modem type from variant.
   125  func GetModemTypeFromVariant(variant string) (ModemType, error) {
   126  	device, ok := KnownVariants[variant]
   127  	if !ok {
   128  		return 0, errors.Errorf("variant %q is not in |KnownVariants|", variant)
   129  	}
   130  	return device.Modem, nil
   131  }