diff --git a/src/ruby/ycp/builtins.rb b/src/ruby/ycp/builtins.rb index 522ae727..02517038 100644 --- a/src/ruby/ycp/builtins.rb +++ b/src/ruby/ycp/builtins.rb @@ -106,8 +106,19 @@ def self.size object # Initialize random number generator - srandom() # Get the current random number generator seed - int srandom() - def self.srandom - raise "Builtin srandom() is not implemented yet" + def self.srandom *param + if param.empty? + # srandom() + t = Time.now.to_i + srand t + t + else + # srandom(int) + p = param.first + + srand p unless p.nil? + nil + end end # - Unions of lists diff --git a/tests/ruby/builtins_test.rb b/tests/ruby/builtins_test.rb index e9f36fe4..1e9d2899 100644 --- a/tests/ruby/builtins_test.rb +++ b/tests/ruby/builtins_test.rb @@ -253,4 +253,10 @@ def test_isempty assert_equal false, YCP::Builtins.isempty("foo") end + def test_srandom + assert_equal nil, YCP::Builtins.srandom(nil) + assert YCP::Builtins.srandom() > 0 + assert_equal nil, YCP::Builtins.srandom(10) + end + end