sys-cpu 0.5.5 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
data/ext/hpux/hpux.c ADDED
@@ -0,0 +1,219 @@
1
+ /*****************************************************************************
2
+ * hpux.c (cpu.c) - sys-cpu extension for HP-UX
3
+ *
4
+ * Author: Daniel J. Berger
5
+ *
6
+ * Interface to provide various types of cpu information.
7
+ * Based on the Unix::Processors Perl module (Wilson Snyder) with ideas from
8
+ * Sys::CPU (Matt Sanford) and Solaris::Kstat (Alan Burlison) as well.
9
+ *****************************************************************************/
10
+ #include <ruby.h>
11
+ #include "version.h"
12
+ #include <unistd.h>
13
+ #include <sys/pstat.h>
14
+
15
+ #ifndef PST_MAX_PROCS
16
+ #define PST_MAX_PROCS 32
17
+ #endif
18
+
19
+ #ifdef __cplusplus
20
+ extern "C"
21
+ {
22
+ #endif
23
+
24
+ VALUE cCPUError;
25
+
26
+ /*
27
+ * call-seq:
28
+ * CPU.load_avg
29
+ * CPU.load_avg(cpu_num)
30
+ * CPU.load_avg{ block }
31
+ *
32
+ * In non-block form returns an array of three floats indicating the 1, 5
33
+ * and 15 minute overall load average.
34
+ *
35
+ * In block form, it returns an array of three floats indicating the 1, 5
36
+ * and 15 minute load average for each cpu. Only useful on multi-cpu
37
+ * systems.
38
+ *
39
+ * If 'cpu_num' is provided, returns the load average (as a 3-element
40
+ * array) for that cpu only.
41
+ *
42
+ * You cannot provide +cpu_num+ and use block form at the same time.
43
+ */
44
+ static VALUE cpu_load_avg(int argc, VALUE *argv)
45
+ {
46
+ struct pst_processor psp[PST_MAX_PROCS];
47
+ struct pst_dynamic psd;
48
+ int i, num_cpu;
49
+ VALUE ncpu = Qnil;
50
+ VALUE la_ary = rb_ary_new();
51
+
52
+ rb_scan_args(argc,argv,"01",&ncpu);
53
+
54
+ if( (ncpu != Qnil) && (rb_block_given_p()) )
55
+ {
56
+ rb_raise(rb_eArgError,"Can't use block form when CPU number is provided");
57
+ }
58
+
59
+ if( (ncpu != Qnil) || ((ncpu == Qnil) && (rb_block_given_p())) )
60
+ {
61
+ num_cpu = pstat_getprocessor(psp,sizeof(struct pst_processor),PST_MAX_PROCS,0);
62
+ if(num_cpu < 0)
63
+ {
64
+ rb_raise(cCPUError,"Call to pstat_getprocessor() failed.");
65
+ }
66
+ else
67
+ {
68
+ for(i = 0; i < num_cpu; i++)
69
+ {
70
+ if( (ncpu != Qnil) && (NUM2INT(ncpu)) != i){ continue; }
71
+
72
+ rb_ary_push(la_ary,rb_float_new(psp[i].psp_avg_1_min));
73
+ rb_ary_push(la_ary,rb_float_new(psp[i].psp_avg_5_min));
74
+ rb_ary_push(la_ary,rb_float_new(psp[i].psp_avg_15_min));
75
+ if(rb_block_given_p())
76
+ {
77
+ rb_yield(la_ary);
78
+ }
79
+ else
80
+ {
81
+ return la_ary;
82
+ }
83
+ rb_ary_clear(la_ary);
84
+ }
85
+ }
86
+ }
87
+ else
88
+ {
89
+ if(pstat_getdynamic(&psd,sizeof(psd), (size_t)1, 0) == -1)
90
+ {
91
+ rb_raise(cCPUError,"Call to pstat_getdynamic() failed.");
92
+ }
93
+ else
94
+ {
95
+ rb_ary_push(la_ary,rb_float_new(psd.psd_avg_1_min));
96
+ rb_ary_push(la_ary,rb_float_new(psd.psd_avg_5_min));
97
+ rb_ary_push(la_ary,rb_float_new(psd.psd_avg_15_min));
98
+ return la_ary;
99
+ }
100
+ }
101
+
102
+ return Qnil;
103
+ }
104
+
105
+ /*
106
+ * call-seq:
107
+ * CPU.num_cpu
108
+ *
109
+ * Returns the number of CPU's on the system.
110
+ */
111
+ static VALUE cpu_num()
112
+ {
113
+ struct pst_dynamic dyn;
114
+ pstat_getdynamic(&dyn, sizeof(dyn), 0, 0);
115
+ return INT2NUM(dyn.psd_max_proc_cnt);
116
+ }
117
+
118
+ /* call-seq:
119
+ * CPU.num_active_cpu
120
+ *
121
+ * Returns the number of active CPU's on the system.
122
+ */
123
+ static VALUE cpu_num_active()
124
+ {
125
+ struct pst_dynamic dyn;
126
+ pstat_getdynamic(&dyn, sizeof(dyn), 0, 0);
127
+ return INT2NUM(dyn.psd_proc_cnt);
128
+ }
129
+
130
+ /*
131
+ * call-seq:
132
+ * CPU.architecture
133
+ *
134
+ * Returns the cpu architecture, e.g. PA RISC 1.2, etc, or nil if it
135
+ * cannot be determined.
136
+ */
137
+ static VALUE cpu_architecture()
138
+ {
139
+ long cpu_ver = sysconf(_SC_CPU_VERSION);
140
+
141
+ if(cpu_ver == CPU_HP_MC68020){ return rb_str_new2("Motorola MC68020"); }
142
+ if(cpu_ver == CPU_HP_MC68030){ return rb_str_new2("Motorola MC68030"); }
143
+ if(cpu_ver == CPU_HP_MC68040){ return rb_str_new2("Motorola MC68040"); }
144
+ if(cpu_ver == CPU_PA_RISC1_0){ return rb_str_new2("HP PA-RISC 1.0"); }
145
+ if(cpu_ver == CPU_PA_RISC1_1){ return rb_str_new2("HP PA-RISC 1.1"); }
146
+ if(cpu_ver == CPU_PA_RISC1_2){ return rb_str_new2("HP PA-RISC 1.2"); }
147
+ if(cpu_ver == CPU_PA_RISC2_0){ return rb_str_new2("HP PA-RISC 2.0"); }
148
+
149
+ return Qnil;
150
+ }
151
+
152
+ /*
153
+ * call-seq:
154
+ * CPU.freq(cpu_num=0)
155
+ *
156
+ * Returns an integer indicating the speed (i.e. frequency in Mhz) of
157
+ * +cpu_num+, or CPU 0 if no +cpu_num+ is specified.
158
+ */
159
+ static VALUE cpu_freq(int argc, VALUE *argv)
160
+ {
161
+ int cpu_num = 0; /* default value */
162
+ struct pst_processor psp;
163
+ unsigned long int clock_speed, scclktick;
164
+ VALUE ncpu = Qnil;
165
+
166
+ rb_scan_args(argc, argv, "01", &ncpu);
167
+
168
+ if(ncpu != Qnil)
169
+ {
170
+ Check_Type(ncpu,T_FIXNUM);
171
+ cpu_num = NUM2INT(ncpu);
172
+ }
173
+
174
+ if((pstat_getprocessor(&psp,sizeof(psp),(size_t)1,cpu_num)) == -1)
175
+ rb_raise(cCPUError, "Invalid CPU number?");
176
+
177
+ scclktick=sysconf(_SC_CLK_TCK);
178
+ clock_speed = (psp.psp_iticksperclktick * scclktick) / 1000000;
179
+
180
+ /************************************************************************/
181
+ /* It appears that pstat_getprocessor does not return a failure code */
182
+ /* for an invalid processor number. So, we'll assume that if the clock */
183
+ /* speed is 0 that an invalid number was provided. */
184
+ /************************************************************************/
185
+ if(clock_speed <= 0)
186
+ rb_raise(cCPUError, "Invalid CPU number?");
187
+
188
+ return UINT2NUM(clock_speed);
189
+ }
190
+
191
+ void Init_cpu()
192
+ {
193
+ VALUE mSys, cCPU;
194
+
195
+ /* The Sys module serves as a toplevel namespace only */
196
+ mSys = rb_define_module("Sys");
197
+
198
+ /* The CPU class provides class methods for obtaining CPU information */
199
+ cCPU = rb_define_class_under(mSys, "CPU", rb_cObject);
200
+
201
+ /* The CPU::Error Exception class is raised whenever any of the CPU class
202
+ * methods fail.
203
+ */
204
+ cCPUError = rb_define_class_under(cCPU, "Error", rb_eStandardError);
205
+
206
+ /* 0.6.0: The version of this package, returned as a String */
207
+ rb_define_const(cCPU, "VERSION", rb_str_new2(SYS_CPU_VERSION));
208
+
209
+ /* Class Methods */
210
+ rb_define_singleton_method(cCPU, "freq", cpu_freq, -1);
211
+ rb_define_singleton_method(cCPU, "num_cpu", cpu_num, 0);
212
+ rb_define_singleton_method(cCPU, "num_active_cpu", cpu_num_active, 0);
213
+ rb_define_singleton_method(cCPU, "load_avg", cpu_load_avg, -1);
214
+ rb_define_singleton_method(cCPU, "architecture", cpu_architecture, 0);
215
+ }
216
+
217
+ #ifdef __cplusplus
218
+ }
219
+ #endif
@@ -8,8 +8,8 @@
8
8
  * The kstat code for load_avg() was taken largely from a post by Casper Dik
9
9
  * on comp.unix.solaris.
10
10
  *****************************************************************************/
11
- #include "ruby.h"
12
- #include "lib/version.h"
11
+ #include <ruby.h>
12
+ #include "version.h"
13
13
  #include <unistd.h>
14
14
  #include <sys/types.h>
15
15
  #include <sys/processor.h>
@@ -38,8 +38,8 @@ VALUE cCPUError;
38
38
  * CPU.freq(cpu_num=0)
39
39
  *
40
40
  * Returns an integer indicating the speed (i.e. frequency in Mhz) of
41
- * +cpu_num+, or CPU 0 (zero) if no number is provided. If you provide an
42
- * invalid CPU number then a CPUError is raised.
41
+ * +cpu_num+, or cpu 0 (zero) if no number is provided. If you provide an
42
+ * invalid cpu number then a CPUError is raised.
43
43
  */
44
44
  static VALUE cpu_freq(int argc, VALUE *argv)
45
45
  {
@@ -74,7 +74,7 @@ static VALUE cpu_freq(int argc, VALUE *argv)
74
74
  * call-seq:
75
75
  * CPU.state(cpu_num=0)
76
76
  *
77
- * Returns a string indicating the cpu state of +cpu_num+, or CPU 0 if no
77
+ * Returns a string indicating the cpu state of +cpu_num+, or cpu 0 if no
78
78
  * number is specified. Raises a CPUError if an invalid +cpu_num+ is provided.
79
79
  */
80
80
  static VALUE cpu_state(int argc, VALUE *argv)
@@ -116,7 +116,7 @@ static VALUE cpu_state(int argc, VALUE *argv)
116
116
  * call-seq:
117
117
  * CPU.num_cpu
118
118
  *
119
- * Returns the number of CPU's on your system.
119
+ * Returns the number of cpu's on your system.
120
120
  */
121
121
  static VALUE cpu_num()
122
122
  {
@@ -127,7 +127,7 @@ static VALUE cpu_num()
127
127
 
128
128
  /*
129
129
  * call-seq:
130
- * CPU.type
130
+ * CPU.cpu_type
131
131
  *
132
132
  * Returns a string indicating the type of processor. This is the
133
133
  * architecture (e.g. sparcv9), not the exact model (e.g. Ultra-IIe).
@@ -247,26 +247,29 @@ static VALUE cpu_load_avg()
247
247
  return la_ary;
248
248
  }
249
249
 
250
- /*
251
- * Provides information about your CPU, including load average information.
252
- */
253
250
  void Init_cpu()
254
251
  {
255
- VALUE sys_mSys, cCPU;
252
+ VALUE mSys, cCPU;
256
253
 
257
- /* Modules and Classes */
258
- sys_mSys = rb_define_module("Sys");
259
- cCPU = rb_define_class_under(sys_mSys, "CPU", rb_cObject);
260
- cCPUError = rb_define_class_under(sys_mSys, "CPUError", rb_eStandardError);
254
+ /* The Sys module serves as a toplevel namespace only */
255
+ mSys = rb_define_module("Sys");
256
+
257
+ /* The CPU class provides class methods for obtaining CPU information */
258
+ cCPU = rb_define_class_under(mSys, "CPU", rb_cObject);
259
+
260
+ /* The CPU::Error Exception class is raised whenever any of the CPU class
261
+ * methods fail.
262
+ */
263
+ cCPUError = rb_define_class_under(cCPU, "Error", rb_eStandardError);
261
264
 
262
- /* Constants */
265
+ /* 0.6.0: The version of this package, returned as a String */
263
266
  rb_define_const(cCPU, "VERSION", rb_str_new2(SYS_CPU_VERSION));
264
267
 
265
268
  /* Class Methods */
266
269
  rb_define_singleton_method(cCPU, "freq", cpu_freq, -1);
267
270
  rb_define_singleton_method(cCPU, "state", cpu_state, -1);
268
271
  rb_define_singleton_method(cCPU, "num_cpu", cpu_num, 0);
269
- rb_define_singleton_method(cCPU, "type", cpu_type, 0);
272
+ rb_define_singleton_method(cCPU, "cpu_type", cpu_type, 0);
270
273
  rb_define_singleton_method(cCPU, "fpu_type", cpu_fpu_type, 0);
271
274
  rb_define_singleton_method(cCPU, "model", cpu_model, 0);
272
275
  rb_define_singleton_method(cCPU, "load_avg", cpu_load_avg, 0);
@@ -1,2 +1,2 @@
1
1
  /* version.h - one version to rule them all */
2
- #define SYS_CPU_VERSION "0.5.5"
2
+ #define SYS_CPU_VERSION "0.6.0"
data/test/tc_bsd.rb ADDED
@@ -0,0 +1,56 @@
1
+ #############################################################
2
+ # tc_bsd.rb
3
+ #
4
+ # The test case for sys-cpu on BSD flavors, including OS X.
5
+ #############################################################
6
+ require "sys/cpu"
7
+ require "test/unit"
8
+ require "tc_version"
9
+ include Sys
10
+
11
+ class TC_BSD < Test::Unit::TestCase
12
+ def test_architecture
13
+ assert_respond_to(CPU, :architecture)
14
+ assert_nothing_raised{ CPU.architecture }
15
+ assert_kind_of(String, CPU.architecture)
16
+ assert_raises(ArgumentError){ CPU.architecture(0) }
17
+ end
18
+
19
+ unless RUBY_PLATFORM.match('darwin')
20
+ def test_cpu_freq
21
+ assert_respond_to(CPU, :freq)
22
+ assert_nothing_raised{ CPU.freq }
23
+ assert_kind_of(Integer, CPU.freq)
24
+ assert_raises(ArgumentError){ CPU.freq(0) }
25
+ end
26
+ end
27
+
28
+ def test_load_avg
29
+ assert_respond_to(CPU, :load_avg)
30
+ assert_nothing_raised{ CPU.load_avg }
31
+ assert_kind_of(Array, CPU.load_avg)
32
+ assert_equal(3,CPU.load_avg.length)
33
+ assert_raises(ArgumentError){ CPU.load_avg(0) }
34
+ end
35
+
36
+ def test_machine
37
+ assert_respond_to(CPU, :machine)
38
+ assert_nothing_raised{ CPU.machine }
39
+ assert_kind_of(String, CPU.machine)
40
+ assert_raises(ArgumentError){ CPU.machine(0) }
41
+ end
42
+
43
+ def test_model
44
+ assert_respond_to(CPU, :model)
45
+ assert_nothing_raised{ CPU.model }
46
+ assert_kind_of(String, CPU.model)
47
+ assert_raises(ArgumentError){ CPU.model(0) }
48
+ end
49
+
50
+ def test_num_cpu
51
+ assert_respond_to(CPU, :num_cpu)
52
+ assert_nothing_raised{ CPU.num_cpu }
53
+ assert_kind_of(Integer, CPU.num_cpu)
54
+ assert_raises(ArgumentError){ CPU.num_cpu(0) }
55
+ end
56
+ end
data/test/tc_cpu.rb ADDED
@@ -0,0 +1,17 @@
1
+ $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__))
2
+ require 'tc_version'
3
+
4
+ case RUBY_PLATFORM
5
+ when /bsd|darwin|mach|osx/i
6
+ require 'tc_bsd'
7
+ when /hpux/i
8
+ require 'tc_hpux'
9
+ when /linux/i
10
+ require 'tc_linux'
11
+ when /sunos|solaris/i
12
+ require 'tc_sunos'
13
+ when /mswin|win32|dos|mingw|cygwin/i
14
+ require 'tc_windows'
15
+ else
16
+ raise "Platform not supported"
17
+ end
data/test/tc_hpux.rb CHANGED
@@ -1,26 +1,12 @@
1
- ####################################################
1
+ #####################################################################
2
2
  # tc_hpux.rb
3
3
  #
4
- # Test suite for the HP-UX platform. Note that this should only
5
- # be run *after* the make process.
6
- ####################################################
7
- base = File.basename(Dir.pwd)
8
- if base == "test" || base =~ /sys-cpu/
9
- require "ftools"
10
- Dir.chdir ".." if base == "test"
11
-
12
- Dir.mkdir("sys") unless File.exists?("sys")
13
- if File.exist?("cpu.sl")
14
- File.copy("cpu.sl","sys")
15
- else
16
- puts "No cpu.sl file found. Please run extconf.rb and make first"
17
- exit
18
- end
19
- $LOAD_PATH.unshift Dir.pwd
20
- end
21
-
4
+ # Test suite for the HP-UX platform. This should be run via the
5
+ # 'rake test' task.
6
+ #####################################################################
22
7
  require "sys/cpu"
23
8
  require "test/unit"
9
+ require "tc_version"
24
10
  include Sys
25
11
 
26
12
  class TC_HPUX < Test::Unit::TestCase
@@ -28,25 +14,25 @@ class TC_HPUX < Test::Unit::TestCase
28
14
  assert_respond_to(CPU, :freq)
29
15
  assert_nothing_raised{ CPU.freq }
30
16
  assert_nothing_raised{ CPU.freq(0) }
31
- assert_kind_of(Integer,CPU.freq,"Invalid Type")
17
+ assert_kind_of(Integer, CPU.freq, "Invalid Type")
32
18
  end
33
19
 
34
20
  def test_num_cpu
35
21
  assert_respond_to(CPU, :num_cpu)
36
22
  assert_nothing_raised{ CPU.num_cpu }
37
- assert_kind_of(Integer,CPU.num_cpu,"Invalid Type")
23
+ assert_kind_of(Integer, CPU.num_cpu, "Invalid Type")
38
24
  end
39
25
 
40
26
  def test_num_active_cpu
41
27
  assert_respond_to(CPU, :num_active_cpu)
42
28
  assert_nothing_raised{ CPU.num_active_cpu }
43
- assert_kind_of(Integer,CPU.num_active_cpu,"Invalid Type")
29
+ assert_kind_of(Integer, CPU.num_active_cpu, "Invalid Type")
44
30
  end
45
31
 
46
32
  def test_cpu_architecture
47
33
  assert_respond_to(CPU, :architecture)
48
34
  assert_nothing_raised{ CPU.architecture }
49
- assert_kind_of(String,CPU.architecture,"Invalid Type")
35
+ assert_kind_of(String, CPU.architecture, "Invalid Type")
50
36
  end
51
37
 
52
38
  def test_load_avg
@@ -55,9 +41,9 @@ class TC_HPUX < Test::Unit::TestCase
55
41
  assert_nothing_raised{ CPU.load_avg(0) }
56
42
  assert_nothing_raised{ CPU.load_avg{ |e| } }
57
43
  assert_raises(ArgumentError){ CPU.load_avg(0){ } }
58
- assert_kind_of(Array,CPU.load_avg,"Invalid Type")
59
- assert_kind_of(Array,CPU.load_avg(0),"Invalid Type")
60
- assert_equal(3,CPU.load_avg.length,"Bad number of elements")
61
- assert_equal(3,CPU.load_avg(0).length,"Bad number of elements")
44
+ assert_kind_of(Array, CPU.load_avg, "Invalid Type")
45
+ assert_kind_of(Array, CPU.load_avg(0), "Invalid Type")
46
+ assert_equal(3, CPU.load_avg.length, "Bad number of elements")
47
+ assert_equal(3, CPU.load_avg(0).length, "Bad number of elements")
62
48
  end
63
49
  end
data/test/tc_linux.rb CHANGED
@@ -1,19 +1,12 @@
1
- ########################################
1
+ ###########################################################
2
2
  # tc_linux.rb
3
3
  #
4
- # Test Suite for sys-cpu for Linux
5
- ########################################
6
- base = File.basename(Dir.pwd)
7
- if base == "test" || base =~ /sys-cpu/
8
- require "ftools"
9
- Dir.chdir ".." if base == "test"
10
- Dir.mkdir("sys") unless File.exists?("sys")
11
- File.copy("lib/sys/linux.rb","sys/cpu.rb")
12
- $LOAD_PATH.unshift Dir.pwd
13
- end
14
-
4
+ # Test Suite for sys-cpu for Linux. This should be run via
5
+ # the 'rake test' task.
6
+ ###########################################################
15
7
  require "sys/cpu"
16
8
  require "test/unit"
9
+ require "tc_version"
17
10
  include Sys
18
11
 
19
12
  class TC_Linux < Test::Unit::TestCase
data/test/tc_sunos.rb CHANGED
@@ -1,31 +1,14 @@
1
1
  ###########################################################
2
2
  # tc_sunos.rb
3
3
  #
4
- # Test suite for sys-cpu on Solaris. This should only be
5
- # run *after* the make process.
4
+ # Test suite for sys-cpu on Solaris. This should be run
5
+ # via the 'rake test' task.
6
6
  ###########################################################
7
- base = File.basename(Dir.pwd)
8
- if base == "test" || base =~ /sys-cpu/
9
- require "ftools"
10
- Dir.chdir ".." if base == "test"
11
-
12
- Dir.mkdir("sys") unless File.exist?("sys")
13
-
14
- if File.exist?("cpu.so")
15
- File.copy("cpu.so","sys")
16
- else
17
- puts "No cpu.so file found. Please run extconf.rb and make first"
18
- exit
19
- end
20
-
21
- $LOAD_PATH.unshift Dir.pwd
22
- end
23
-
24
7
  require "sys/cpu"
25
8
  require "test/unit"
9
+ require "tc_version"
26
10
  include Sys
27
11
 
28
- # I could really use a mock object here
29
12
  class TC_SunOS < Test::Unit::TestCase
30
13
  def test_cpu_freq
31
14
  assert_respond_to(CPU, :freq)
@@ -35,9 +18,9 @@ class TC_SunOS < Test::Unit::TestCase
35
18
  end
36
19
 
37
20
  def test_cpu_type
38
- assert_respond_to(CPU, :type)
39
- assert_nothing_raised{ CPU.type }
40
- assert_kind_of(String, CPU.type)
21
+ assert_respond_to(CPU, :cpu_type)
22
+ assert_nothing_raised{ CPU.cpu_type }
23
+ assert_kind_of(String, CPU.cpu_type)
41
24
  end
42
25
 
43
26
  def test_fpu_type
@@ -74,9 +57,9 @@ class TC_SunOS < Test::Unit::TestCase
74
57
  end
75
58
 
76
59
  def test_exceptions
77
- assert_raises(Sys::CPUError){ CPU.state(55) }
60
+ assert_raises(Sys::CPU::Error){ CPU.state(55) }
78
61
  assert_raises(TypeError){ CPU.state("yo") }
79
- assert_raises(Sys::CPUError){ CPU.freq(999) }
62
+ assert_raises(Sys::CPU::Error){ CPU.freq(999) }
80
63
  assert_raises(TypeError){ CPU.freq("yo") }
81
64
  end
82
65
  end
data/test/tc_version.rb CHANGED
@@ -5,40 +5,12 @@
5
5
  # version. This reduces the pain of having separate tests
6
6
  # for the VERSION constant in every single test case.
7
7
  ###########################################################
8
- base = File.basename(Dir.pwd)
9
-
10
- if base == "test" || base =~ /sys-cpu/
11
- require "ftools"
12
-
13
- Dir.chdir("..") if base == "test"
14
- Dir.mkdir("sys") unless File.exist?("sys")
15
-
16
- case RUBY_PLATFORM
17
- when /mswin|dos|cygwin|mingw/i
18
- file = 'lib/sys/windows.rb'
19
- when /linux/i
20
- file = 'lib/sys/linux.rb'
21
- else
22
- require "rbconfig"
23
- file = "cpu." << Config::CONFIG["DLEXT"]
24
- end
25
-
26
- if File.exist?(file)
27
- File.copy(file, "sys/cpu.rb")
28
- else
29
- puts "No '#{file}' file found. Please run extconf.rb and make first"
30
- exit
31
- end
32
-
33
- $LOAD_PATH.unshift Dir.pwd
34
- end
35
-
36
8
  require "sys/cpu"
37
9
  require "test/unit"
38
10
  include Sys
39
11
 
40
12
  class TC_Sys_CPU_VERSION < Test::Unit::TestCase
41
13
  def test_version
42
- assert_equal('0.5.5', CPU::VERSION)
14
+ assert_equal('0.6.0', CPU::VERSION)
43
15
  end
44
16
  end
data/test/tc_windows.rb CHANGED
@@ -1,19 +1,12 @@
1
1
  ######################################################################
2
2
  # tc_windows.rb
3
3
  #
4
- # Test suite for Win32 systems.
4
+ # Test suite for MS Windows systems. This should be run via the
5
+ # 'rake test' task.
5
6
  ######################################################################
6
- base = File.basename(Dir.pwd)
7
- if base == "test" || base =~ /sys-cpu/
8
- require "ftools" if base == "test"
9
- Dir.chdir '..'
10
- Dir.mkdir("sys") unless File.exists?("sys")
11
- File.copy("lib/sys/windows.rb","sys/cpu.rb")
12
- $LOAD_PATH.unshift Dir.pwd
13
- end
14
-
15
7
  require "test/unit"
16
8
  require "sys/cpu"
9
+ require "tc_version"
17
10
  require "socket"
18
11
  include Sys
19
12
 
@@ -26,43 +19,43 @@ class TC_Windows_CPU < Test::Unit::TestCase
26
19
  assert_respond_to(CPU, :architecture)
27
20
  assert_nothing_raised{ CPU.architecture }
28
21
  assert_nothing_raised{ CPU.architecture(@host) }
29
- assert_kind_of(String,CPU.architecture,"Invalid Type")
22
+ assert_kind_of(String, CPU.architecture, "Invalid Type")
30
23
  end
31
24
 
32
25
  def test_freq
33
26
  assert_respond_to(CPU, :freq)
34
27
  assert_nothing_raised{ CPU.freq }
35
28
  assert_nothing_raised{ CPU.freq(0) }
36
- assert_nothing_raised{ CPU.freq(0,@host) }
37
- assert_kind_of(Integer,CPU.freq,"Invalid Type")
29
+ assert_nothing_raised{ CPU.freq(0, @host) }
30
+ assert_kind_of(Integer, CPU.freq, "Invalid Type")
38
31
  end
39
32
 
40
33
  def test_model
41
34
  assert_respond_to(CPU, :model)
42
35
  assert_nothing_raised{ CPU.model }
43
36
  assert_nothing_raised{ CPU.model(@host) }
44
- assert_kind_of(String,CPU.model,"Invalid Type")
37
+ assert_kind_of(String, CPU.model, "Invalid Type")
45
38
  end
46
39
 
47
40
  def test_num_cpu
48
41
  assert_respond_to(CPU, :num_cpu)
49
42
  assert_nothing_raised{ CPU.num_cpu }
50
43
  assert_nothing_raised{ CPU.num_cpu(@host) }
51
- assert_kind_of(Integer,CPU.num_cpu,"Invalid Type")
44
+ assert_kind_of(Integer, CPU.num_cpu, "Invalid Type")
52
45
  end
53
46
 
54
47
  def test_type
55
48
  assert_respond_to(CPU, :type)
56
49
  assert_nothing_raised{ CPU.type }
57
50
  assert_nothing_raised{ CPU.type(@host) }
58
- assert_kind_of(String,CPU.type,"Invalid Type")
51
+ assert_kind_of(String, CPU.type, "Invalid Type")
59
52
  end
60
53
 
61
54
  def test_load_avg
62
55
  assert_respond_to(CPU, :load_avg)
63
56
  assert_nothing_raised{ CPU.load_avg }
64
- assert_nothing_raised{ CPU.load_avg(0,@host) }
65
- assert_kind_of(Integer,CPU.load_avg,"Invalid Type")
57
+ assert_nothing_raised{ CPU.load_avg(0, @host) }
58
+ assert_kind_of(Integer, CPU.load_avg, "Invalid Type")
66
59
  end
67
60
 
68
61
  def test_processors