summaryrefslogtreecommitdiff
path: root/spec/unit/plugins/solaris2/dmi_spec.rb
blob: 261c44317219cea94a3134b5fdfdf2a2f4348b4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#
# Author:: Thom May (<thom@chef.io>)
# Copyright:: Copyright (c) 2015 Chef Software
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

require File.expand_path(File.dirname(__FILE__) + "/../../../spec_helper.rb")

SOLARIS_DMI_OUT = <<-EOS
ID    SIZE TYPE
0     64   SMB_TYPE_BIOS (type 0) (BIOS information)

  Vendor: American Megatrends Inc.
  Version String: 4701
  Release Date: 08/26/2014
  Address Segment: 0xf000
  ROM Size: 8388608 bytes
  Image Size: 65536 bytes
  Characteristics: 0x53f8b9c80
        SMB_BIOSFL_PCI (PCI is supported)
        SMB_BIOSFL_APM (APM is supported)
        SMB_BIOSFL_FLASH (BIOS is Flash Upgradeable)
        SMB_BIOSFL_SHADOW (BIOS shadowing is allowed)
        SMB_BIOSFL_CDBOOT (Boot from CD is supported)
        SMB_BIOSFL_SELBOOT (Selectable Boot supported)
        SMB_BIOSFL_ROMSOCK (BIOS ROM is socketed)
        SMB_BIOSFL_EDD (EDD Spec is supported)
        SMB_BIOSFL_525_12M (int 0x13 5.25" 1.2M floppy)
        SMB_BIOSFL_35_720K (int 0x13 3.5" 720K floppy)
        SMB_BIOSFL_35_288M (int 0x13 3.5" 2.88M floppy)
        SMB_BIOSFL_I5_PRINT (int 0x5 print screen svcs)
        SMB_BIOSFL_I9_KBD (int 0x9 8042 keyboard svcs)
        SMB_BIOSFL_I14_SER (int 0x14 serial svcs)
        SMB_BIOSFL_I17_PRINTER (int 0x17 printer svcs)
        0x100000000
        0x400000000
  Characteristics Extension Byte 1: 0x3
        SMB_BIOSXB1_ACPI (ACPI is supported)
        SMB_BIOSXB1_USBL (USB legacy is supported)
  Characteristics Extension Byte 2: 0xd
        SMB_BIOSXB2_BBOOT (BIOS Boot Specification supported)
        SMB_BIOSXB2_ETCDIST (Enable Targeted Content Distrib.)
        SMB_BIOSXB2_UEFI (UEFI Specification supported)
  Version Number: 0.0
  Embedded Ctlr Firmware Version Number: 0.0

ID    SIZE TYPE
1     129  SMB_TYPE_SYSTEM (type 1) (system information)

  Manufacturer: System manufacturer
  Product: System Product Name
  Version: System Version
  Serial Number: System Serial Number

  UUID: 20b1001e-8c00-0072-5566-10c37b474fc1
  Wake-Up Event: 0x6 (power switch)
  SKU Number: SKU
  Family: To be filled by O.E.M.

ID    SIZE TYPE
2     116  SMB_TYPE_BASEBOARD (type 2) (base board)

  Manufacturer: ASUSTeK COMPUTER INC.
  Product: P9X79 WS
  Version: Rev 1.xx
  Serial Number: 140525831000250
  Asset Tag: To be filled by O.E.M.
  Location Tag: To be filled by O.E.M.

  Chassis: 3
  Flags: 0x9
        SMB_BBFL_MOTHERBOARD (board is a motherboard)
        SMB_BBFL_REPLACABLE (board is field-replacable)
  Board Type: 0xa (motherboard)

ID    SIZE TYPE
46    38   SMB_TYPE_OBDEVS (type 10) (on-board devices)

  Onboard Ethernet
  Onboard Audio

ID    SIZE TYPE
3     106  SMB_TYPE_CHASSIS (type 3) (system enclosure or chassis)

  Manufacturer: Chassis Manufacture
  Version: Chassis Version
  Serial Number: Chassis Serial Number
  Asset Tag: PCS

  OEM Data: 0x0
  SKU number: ^E
  Lock Present: N
  Chassis Type: 0x3 (desktop)
  Boot-Up State: 0x3 (safe)
  Power Supply State: 0x3 (safe)
  Thermal State: 0x3 (safe)
  Chassis Height: 0u
  Power Cords: 1
  Element Records: 0
EOS

describe Ohai::System, "Solaris2.X DMI plugin" do
  before(:each) do
    @plugin = get_plugin("solaris2/dmi")
    allow(@plugin).to receive(:collect_os).and_return("solaris2")
    @stdout = SOLARIS_DMI_OUT
    allow(@plugin).to receive(:shell_out).with("smbios").and_return(mock_shell_out(0, @stdout, ""))
  end

  it "should run smbios" do
    expect(@plugin).to receive(:shell_out).with("smbios").and_return(mock_shell_out(0, @stdout, ""))
    @plugin.run
  end

  {
    bios: {
      vendor: "American Megatrends Inc.",
      release_date: "08/26/2014",
    },
    system: {
      manufacturer: "System manufacturer",
      product: "System Product Name",
    },
    chassis: {
      lock_present: "N",
      asset_tag: "PCS",
    },
  }.each do |id, data|
    data.each do |attribute, value|
      it "should have [:dmi][:#{id}][:#{attribute}] set" do
        @plugin.run
        expect(@plugin[:dmi][id][attribute]).to eql(value)
      end
    end
  end

  it "should ignore unwanted types" do
    @plugin.run
    expect(@plugin[:dmi]).not_to have_key(:on_board_devices)
  end
end