spec/unit/plugins/solaris2/kernel_spec.rb in ohai-8.5.0 vs spec/unit/plugins/solaris2/kernel_spec.rb in ohai-8.5.1

- old
+ new

@@ -1,160 +1,160 @@ -# -# Author:: Daniel DeLeo <dan@kallistec.com> -# Copyright:: Copyright (c) 2009 Daniel DeLeo -# 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') - -describe Ohai::System, "Solaris2.X kernel plugin" do - # NOTE: Solaris will report the same module loaded multiple times - # with the same ID, Loadaddr, etc. and only the info column different - # ignoring it, and removing the data from this fixture. - MODINFO=<<-TOOMUCH - Id Loadaddr Size Info Rev Module Name - 6 1180000 4623 1 1 specfs (filesystem for specfs) - 8 1185df0 38c4 1 1 TS (time sharing sched class) - 9 1188f50 8dc - 1 TS_DPTBL (Time sharing dispatch table) - 10 1188fe0 3623e 2 1 ufs (filesystem for ufs) - 11 11bc7ae 1ef - 1 fssnap_if (File System Snapshot Interface) - 12 11bc8f6 1b3a 1 1 rootnex (sun4u root nexus 1.95) - 13 11be023 210 57 1 options (options driver) - 15 11be6ff 181a 12 1 sad (STREAMS Administrative Driver ') - 16 11bfc79 64b 2 1 pseudo (nexus driver for 'pseudo') - 17 11c0152 23563 32 1 sd (SCSI Disk Driver 1.447) - 18 11e160d 8c49 - 1 scsi (SCSI Bus Utility Routines) - 23 12171db 1072b 50 1 glm (GLM SCSI HBA Driver 1.191.) - 24 1225816 edcb 111 1 pcipsy (PCI Bus nexus driver 1.214) - 26 123e0eb 15b7 - 1 dada ( ATA Bus Utility Routines) - 27 123f30a 722 - 1 todmostek (tod module for Mostek M48T59 1.) - 28 11e7342 1a902 5 1 procfs (filesystem for proc) - 29 12335a1 da0 134 1 power (power button driver v1.10) - 30 1234199 15cb 126 1 ebus (ebus nexus driver 1.44) - 32 123f9a4 12215 6 1 sockfs (filesystem for sockfs) - 34 12365ba 6ae 11 1 clone (Clone Pseudodriver 'clone') - 35 1251709 7b1a6 0 1 ip (IP Streams module) - 36 1236a10 34f 1 1 ip6 (IP Streams module) - 37 12c56af 282d1 2 1 tcp (TCP Streams module) - 38 1236ba4 107d - 1 md5 (MD5 Message-Digest Algorithm) - 39 1237b6c 365 3 1 tcp6 (TCP Streams module) - 40 1201148 a22f 4 1 udp (UDP Streams module) - 41 1237d11 365 5 1 udp6 (UDP Streams module) - 42 12096ef 86eb 6 1 icmp (ICMP Streams module) - 43 1237eb6 351 7 1 icmp6 (ICMP Streams module) - 44 123804c 6d5b 8 1 arp (ARP Streams module) - 45 1210282 46ba 9 1 timod (transport interface str mod) - 47 12152d1 c53 16 1 conskbd (Console kbd Multiplexer driver ) - 48 1215b88 1ec2 15 1 wc (Workstation multiplexer Driver ) - 49 12e66d4 516c 37 1 su (su driver 1.80) - 51 12ed065 4026 10 1 kb (streams module for keyboard) - 52 12efe3b 18c0 11 1 ms (streams module for mouse) - 53 12f14f7 a87 17 1 consms (Mouse Driver for Sun 'consms' 5) - 54 12f1bf6 b9d6 166 1 gfxp (TSI tspci driver %I%) - 55 12fb934 d77 14 1 iwscn (Workstation Redirection driver ) - 58 1321301 4a4e 1 1 elfexec (exec module for elf) - 62 1328758 10bca - 1 usba (USBA: USB Architecture 1.36) - 64 1337002 4884 - 1 mpxio (Multipath Interface Library v1.) - 68 131ded0 36d9 3 1 fifofs (filesystem for fifo) - 69 131248e 6888 - 1 fctl (Sun FC Transport Library v1.14) - 71 1345ddc 18cff - 1 usba10 (USBA10: USB 1.0 Architecture 1.) - 75 135b92b f0e2 12 1 ldterm (terminal line discipline) - 76 1326309 246d 13 1 ttcompat (alt ioctl calls) - 77 133b574 8cbb 29 1 zs (Z8530 serial driver V4.128) - 78 1343d27 15d0 26 1 ptsl (tty pseudo driver slave 'ptsl' ) - 79 12fc4f3 1e77 25 1 ptc (tty pseudo driver control 'ptc') - 81 13748db 1d2c 14 1 rts (Routing Socket Streams module) - 88 136a112 ac5a 20 1 se (Siemens SAB 82532 ESCC2 1.128) - 89 13cf520 4be3 105 1 tl (TPI Local Transport Driver - tl) - 90 13d3d1b 48d3 17 1 keysock (PF_KEY Socket Streams module) - 91 13d7766 323f 234 1 spdsock (PF_POLICY Socket Streams device) - 92 137c3fb 1672 97 1 sysmsg (System message redirection (fan) - 93 12fe1ba 82c 0 1 cn (Console redirection driver 5.57) - 94 7814fba6 4b5 2 1 intpexec (exec mod for interp) - 95 12fe826 2cb 42 1 pipe (pipe(2) syscall) - 96 137d2dd 112d 13 1 mm (memory driver 1.68) - 97 13da515 ea79 7 1 hme (10/100Mb Ethernet Driver v1.167) - 98 78058000 2e313 85 1 md (Solaris Volume Manager base mod) - 99 13e6c82 127bc 226 1 rpcmod (RPC syscall) - 100 13f6ab6 1f99 - 1 tlimod (KTLI misc module) - 101 13f89a9 54e8 - 1 md_stripe (Solaris Volume Manager stripes ) - 102 78086000 13316 - 1 md_mirror (Solaris Volume Manager mirrors ) - 103 78084c17 1669 15 1 mntfs (mount information file system) - 105 78098156 fe0 12 1 fdfs (filesystem for fd) - 106 7809a000 46d7 201 1 doorfs (doors) - 107 7809e3c4 16e2 4 1 namefs (filesystem for namefs) - 108 780a0000 15ef2 11 1 tmpfs (filesystem for tmpfs) - 109 78098ca6 1054 90 1 kstat (kernel statistics driver 1.18) - 110 1375e9f 3aa9 88 1 devinfo (DEVINFO Driver 1.48) - 111 13fda05 25b9 38 1 openeepr (OPENPROM/NVRAM Driver v1.14) - 112 780a5886 9c7 21 1 log (streams log driver) - 113 780bc000 2c080 106 1 nfs (NFS syscall, client, and common) - 114 780ea000 4e43 - 1 rpcsec (kernel RPC security module.) - 115 780f4000 8667 - 1 klmmod (lock mgr common module) - 116 780f0000 354c 2 1 FX (Fixed priority sched class) - 117 137e232 2ae - 1 FX_DPTBL (Fixed priority dispatch table) - 118 780fc000 668b 17 1 autofs (filesystem for autofs) - 119 780eeaab 1bba 104 1 random (random number device v1.8) - 120 12eb400 1b66 - 1 sha1 (SHA1 Message-Digest Algorithm) - 122 780f2788 13b8 - 1 bootdev (bootdev misc module 1.18) - 124 78124000 579e 127 1 pm (power management driver v1.104) - 125 781106aa 10b7 207 1 pset (processor sets) - 126 7812a000 289d 52 1 shmsys (System V shared memory) - 127 1216e2a 3dc - 1 ipc (common ipc code) - 128 7812e000 ee14 - 1 md_raid (Solaris Volume Manager raid mod) - 129 7813e000 d0cd - 1 md_trans (Solaris Volume Manager trans mo) - 130 7814c000 2a03 - 1 md_hotspares (Solaris Volume Manager hot spar) - 131 7814ab55 1004 - 1 md_notify (Solaris Volume Manager notifica) - 132 7809f7f6 903 22 1 sy (Indirect driver for tty 'sy' 1.) - 133 780e541c d34 23 1 ptm (Master streams driver 'ptm' 1.4) - 134 7812c76d d36 24 1 pts (Slave Stream Pseudo Terminal dr) - 135 7814e728 1617 19 1 ptem (pty hardware emulator) - 136 780e5eb8 2a5 20 1 redirmod (redirection module) - 137 78150000 6b71 91 1 vol (Volume Management Driver, 1.93) - 138 13285ad 2cf 21 1 connld (Streams-based pipes) - 139 137e27a 109 3 1 IA (interactive scheduling class) - 140 7813c544 1b10 22 1 hwc (streams module for hardware cur) - 141 78156871 170f 23 1 bufmod (streams buffer mod) - 142 1325c4c 838 72 1 ksyms (kernel symbols driver 1.25) - 143 12fea22 14864 33 1 st (SCSI tape Driver 1.238) - 144 1379790 2a12 53 1 semsys (System V semaphore facility) - 145 12138e4 15e4 4 1 RT (realtime scheduling class) - 146 121719e 28c - 1 RT_DPTBL (realtime dispatch table) - TOOMUCH - - before(:each) do - @plugin = get_plugin("kernel") - allow(@plugin).to receive(:collect_os).and_return(:solaris2) - allow(@plugin).to receive(:init_kernel).and_return({}) - allow(@plugin).to receive(:shell_out).with("uname -s").and_return(mock_shell_out(0, "SunOS\n", "")) - allow(@plugin).to receive(:shell_out).with("modinfo").and_return(mock_shell_out(0, MODINFO, "")) - end - - it_should_check_from_deep_mash("solaris2::kernel", "kernel", "os", "uname -s", [0, "SunOS\n", ""]) - - it "gives excruciating detail about kernel modules" do - @plugin.run - - expect(@plugin[:kernel][:modules]).to have(107).modules - - # Teh daterz - # Id Loadaddr Size Info Rev Module Name - # 6 1180000 4623 1 1 specfs (filesystem for specfs) - teh_daterz = { "id" => 6, "loadaddr" => "1180000", "size" => 17955, "description" => "filesystem for specfs"} - expect(@plugin[:kernel][:modules].keys).to include("specfs") - expect(@plugin[:kernel][:modules].keys).not_to include("Module") - expect(@plugin[:kernel][:modules]["specfs"]).to eq(teh_daterz) - end - -end +# +# Author:: Daniel DeLeo <dan@kallistec.com> +# Copyright:: Copyright (c) 2009 Daniel DeLeo +# 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') + +describe Ohai::System, "Solaris2.X kernel plugin" do + # NOTE: Solaris will report the same module loaded multiple times + # with the same ID, Loadaddr, etc. and only the info column different + # ignoring it, and removing the data from this fixture. + MODINFO=<<-TOOMUCH + Id Loadaddr Size Info Rev Module Name + 6 1180000 4623 1 1 specfs (filesystem for specfs) + 8 1185df0 38c4 1 1 TS (time sharing sched class) + 9 1188f50 8dc - 1 TS_DPTBL (Time sharing dispatch table) + 10 1188fe0 3623e 2 1 ufs (filesystem for ufs) + 11 11bc7ae 1ef - 1 fssnap_if (File System Snapshot Interface) + 12 11bc8f6 1b3a 1 1 rootnex (sun4u root nexus 1.95) + 13 11be023 210 57 1 options (options driver) + 15 11be6ff 181a 12 1 sad (STREAMS Administrative Driver ') + 16 11bfc79 64b 2 1 pseudo (nexus driver for 'pseudo') + 17 11c0152 23563 32 1 sd (SCSI Disk Driver 1.447) + 18 11e160d 8c49 - 1 scsi (SCSI Bus Utility Routines) + 23 12171db 1072b 50 1 glm (GLM SCSI HBA Driver 1.191.) + 24 1225816 edcb 111 1 pcipsy (PCI Bus nexus driver 1.214) + 26 123e0eb 15b7 - 1 dada ( ATA Bus Utility Routines) + 27 123f30a 722 - 1 todmostek (tod module for Mostek M48T59 1.) + 28 11e7342 1a902 5 1 procfs (filesystem for proc) + 29 12335a1 da0 134 1 power (power button driver v1.10) + 30 1234199 15cb 126 1 ebus (ebus nexus driver 1.44) + 32 123f9a4 12215 6 1 sockfs (filesystem for sockfs) + 34 12365ba 6ae 11 1 clone (Clone Pseudodriver 'clone') + 35 1251709 7b1a6 0 1 ip (IP Streams module) + 36 1236a10 34f 1 1 ip6 (IP Streams module) + 37 12c56af 282d1 2 1 tcp (TCP Streams module) + 38 1236ba4 107d - 1 md5 (MD5 Message-Digest Algorithm) + 39 1237b6c 365 3 1 tcp6 (TCP Streams module) + 40 1201148 a22f 4 1 udp (UDP Streams module) + 41 1237d11 365 5 1 udp6 (UDP Streams module) + 42 12096ef 86eb 6 1 icmp (ICMP Streams module) + 43 1237eb6 351 7 1 icmp6 (ICMP Streams module) + 44 123804c 6d5b 8 1 arp (ARP Streams module) + 45 1210282 46ba 9 1 timod (transport interface str mod) + 47 12152d1 c53 16 1 conskbd (Console kbd Multiplexer driver ) + 48 1215b88 1ec2 15 1 wc (Workstation multiplexer Driver ) + 49 12e66d4 516c 37 1 su (su driver 1.80) + 51 12ed065 4026 10 1 kb (streams module for keyboard) + 52 12efe3b 18c0 11 1 ms (streams module for mouse) + 53 12f14f7 a87 17 1 consms (Mouse Driver for Sun 'consms' 5) + 54 12f1bf6 b9d6 166 1 gfxp (TSI tspci driver %I%) + 55 12fb934 d77 14 1 iwscn (Workstation Redirection driver ) + 58 1321301 4a4e 1 1 elfexec (exec module for elf) + 62 1328758 10bca - 1 usba (USBA: USB Architecture 1.36) + 64 1337002 4884 - 1 mpxio (Multipath Interface Library v1.) + 68 131ded0 36d9 3 1 fifofs (filesystem for fifo) + 69 131248e 6888 - 1 fctl (Sun FC Transport Library v1.14) + 71 1345ddc 18cff - 1 usba10 (USBA10: USB 1.0 Architecture 1.) + 75 135b92b f0e2 12 1 ldterm (terminal line discipline) + 76 1326309 246d 13 1 ttcompat (alt ioctl calls) + 77 133b574 8cbb 29 1 zs (Z8530 serial driver V4.128) + 78 1343d27 15d0 26 1 ptsl (tty pseudo driver slave 'ptsl' ) + 79 12fc4f3 1e77 25 1 ptc (tty pseudo driver control 'ptc') + 81 13748db 1d2c 14 1 rts (Routing Socket Streams module) + 88 136a112 ac5a 20 1 se (Siemens SAB 82532 ESCC2 1.128) + 89 13cf520 4be3 105 1 tl (TPI Local Transport Driver - tl) + 90 13d3d1b 48d3 17 1 keysock (PF_KEY Socket Streams module) + 91 13d7766 323f 234 1 spdsock (PF_POLICY Socket Streams device) + 92 137c3fb 1672 97 1 sysmsg (System message redirection (fan) + 93 12fe1ba 82c 0 1 cn (Console redirection driver 5.57) + 94 7814fba6 4b5 2 1 intpexec (exec mod for interp) + 95 12fe826 2cb 42 1 pipe (pipe(2) syscall) + 96 137d2dd 112d 13 1 mm (memory driver 1.68) + 97 13da515 ea79 7 1 hme (10/100Mb Ethernet Driver v1.167) + 98 78058000 2e313 85 1 md (Solaris Volume Manager base mod) + 99 13e6c82 127bc 226 1 rpcmod (RPC syscall) + 100 13f6ab6 1f99 - 1 tlimod (KTLI misc module) + 101 13f89a9 54e8 - 1 md_stripe (Solaris Volume Manager stripes ) + 102 78086000 13316 - 1 md_mirror (Solaris Volume Manager mirrors ) + 103 78084c17 1669 15 1 mntfs (mount information file system) + 105 78098156 fe0 12 1 fdfs (filesystem for fd) + 106 7809a000 46d7 201 1 doorfs (doors) + 107 7809e3c4 16e2 4 1 namefs (filesystem for namefs) + 108 780a0000 15ef2 11 1 tmpfs (filesystem for tmpfs) + 109 78098ca6 1054 90 1 kstat (kernel statistics driver 1.18) + 110 1375e9f 3aa9 88 1 devinfo (DEVINFO Driver 1.48) + 111 13fda05 25b9 38 1 openeepr (OPENPROM/NVRAM Driver v1.14) + 112 780a5886 9c7 21 1 log (streams log driver) + 113 780bc000 2c080 106 1 nfs (NFS syscall, client, and common) + 114 780ea000 4e43 - 1 rpcsec (kernel RPC security module.) + 115 780f4000 8667 - 1 klmmod (lock mgr common module) + 116 780f0000 354c 2 1 FX (Fixed priority sched class) + 117 137e232 2ae - 1 FX_DPTBL (Fixed priority dispatch table) + 118 780fc000 668b 17 1 autofs (filesystem for autofs) + 119 780eeaab 1bba 104 1 random (random number device v1.8) + 120 12eb400 1b66 - 1 sha1 (SHA1 Message-Digest Algorithm) + 122 780f2788 13b8 - 1 bootdev (bootdev misc module 1.18) + 124 78124000 579e 127 1 pm (power management driver v1.104) + 125 781106aa 10b7 207 1 pset (processor sets) + 126 7812a000 289d 52 1 shmsys (System V shared memory) + 127 1216e2a 3dc - 1 ipc (common ipc code) + 128 7812e000 ee14 - 1 md_raid (Solaris Volume Manager raid mod) + 129 7813e000 d0cd - 1 md_trans (Solaris Volume Manager trans mo) + 130 7814c000 2a03 - 1 md_hotspares (Solaris Volume Manager hot spar) + 131 7814ab55 1004 - 1 md_notify (Solaris Volume Manager notifica) + 132 7809f7f6 903 22 1 sy (Indirect driver for tty 'sy' 1.) + 133 780e541c d34 23 1 ptm (Master streams driver 'ptm' 1.4) + 134 7812c76d d36 24 1 pts (Slave Stream Pseudo Terminal dr) + 135 7814e728 1617 19 1 ptem (pty hardware emulator) + 136 780e5eb8 2a5 20 1 redirmod (redirection module) + 137 78150000 6b71 91 1 vol (Volume Management Driver, 1.93) + 138 13285ad 2cf 21 1 connld (Streams-based pipes) + 139 137e27a 109 3 1 IA (interactive scheduling class) + 140 7813c544 1b10 22 1 hwc (streams module for hardware cur) + 141 78156871 170f 23 1 bufmod (streams buffer mod) + 142 1325c4c 838 72 1 ksyms (kernel symbols driver 1.25) + 143 12fea22 14864 33 1 st (SCSI tape Driver 1.238) + 144 1379790 2a12 53 1 semsys (System V semaphore facility) + 145 12138e4 15e4 4 1 RT (realtime scheduling class) + 146 121719e 28c - 1 RT_DPTBL (realtime dispatch table) + TOOMUCH + + before(:each) do + @plugin = get_plugin("kernel") + allow(@plugin).to receive(:collect_os).and_return(:solaris2) + allow(@plugin).to receive(:init_kernel).and_return({}) + allow(@plugin).to receive(:shell_out).with("uname -s").and_return(mock_shell_out(0, "SunOS\n", "")) + allow(@plugin).to receive(:shell_out).with("modinfo").and_return(mock_shell_out(0, MODINFO, "")) + end + + it_should_check_from_deep_mash("solaris2::kernel", "kernel", "os", "uname -s", [0, "SunOS\n", ""]) + + it "gives excruciating detail about kernel modules" do + @plugin.run + + expect(@plugin[:kernel][:modules]).to have(107).modules + + # Teh daterz + # Id Loadaddr Size Info Rev Module Name + # 6 1180000 4623 1 1 specfs (filesystem for specfs) + teh_daterz = { "id" => 6, "loadaddr" => "1180000", "size" => 17955, "description" => "filesystem for specfs"} + expect(@plugin[:kernel][:modules].keys).to include("specfs") + expect(@plugin[:kernel][:modules].keys).not_to include("Module") + expect(@plugin[:kernel][:modules]["specfs"]).to eq(teh_daterz) + end + +end