Hello community,

here is the log from the commit of package ghc-hslua-module-system for 
openSUSE:Factory checked in at 2020-08-28 21:33:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-hslua-module-system (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-hslua-module-system.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-hslua-module-system"

Fri Aug 28 21:33:28 2020 rev:4 rq:829304 version:0.2.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/ghc-hslua-module-system/ghc-hslua-module-system.changes
  2020-06-19 17:13:20.798143440 +0200
+++ 
/work/SRC/openSUSE:Factory/.ghc-hslua-module-system.new.3399/ghc-hslua-module-system.changes
        2020-08-28 21:33:29.672670262 +0200
@@ -1,0 +2,16 @@
+Tue Aug 18 10:45:04 UTC 2020 - Peter Simons <[email protected]>
+
+- Replace %setup -q with the more modern %autosetup macro.
+
+-------------------------------------------------------------------
+Sun Aug 16 02:01:35 UTC 2020 - [email protected]
+
+- Update hslua-module-system to version 0.2.2.
+  ## 0.2.2 -- 2020-08-15
+
+  - Relaxed upper bound for hslua, allow `hslua-1.2.*`.
+  - Improved documentation of internal types.
+  - Use tasty-lua for unit tests.
+  - Update CI to test with all GHC versions.
+
+-------------------------------------------------------------------

Old:
----
  hslua-module-system-0.2.1.tar.gz

New:
----
  hslua-module-system-0.2.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-hslua-module-system.spec ++++++
--- /var/tmp/diff_new_pack.LzhyIt/_old  2020-08-28 21:33:31.700671223 +0200
+++ /var/tmp/diff_new_pack.LzhyIt/_new  2020-08-28 21:33:31.704671225 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ghc-hslua-module-system
 #
-# Copyright (c) 2019 SUSE LLC
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %global pkg_name hslua-module-system
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        0.2.1
+Version:        0.2.2
 Release:        0
 Summary:        Lua module wrapper around Haskell's System module
 License:        MIT
@@ -35,6 +35,7 @@
 %if %{with tests}
 BuildRequires:  ghc-tasty-devel
 BuildRequires:  ghc-tasty-hunit-devel
+BuildRequires:  ghc-tasty-lua-devel
 BuildRequires:  ghc-text-devel
 %endif
 
@@ -58,7 +59,7 @@
 files.
 
 %prep
-%setup -q -n %{pkg_name}-%{version}
+%autosetup -n %{pkg_name}-%{version}
 
 %build
 %ghc_lib_build

++++++ hslua-module-system-0.2.1.tar.gz -> hslua-module-system-0.2.2.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hslua-module-system-0.2.1/CHANGELOG.md 
new/hslua-module-system-0.2.2/CHANGELOG.md
--- old/hslua-module-system-0.2.1/CHANGELOG.md  1970-01-01 01:00:00.000000000 
+0100
+++ new/hslua-module-system-0.2.2/CHANGELOG.md  2001-09-09 03:46:40.000000000 
+0200
@@ -1,5 +1,12 @@
 # Revision history for hslua-module-system
 
+## 0.2.2 -- 2020-08-15
+
+- Relaxed upper bound for hslua, allow `hslua-1.2.*`.
+- Improved documentation of internal types.
+- Use tasty-lua for unit tests.
+- Update CI to test with all GHC versions.
+
 ## 0.2.1 -- 2019-05-04
 
 - Use module helpers made available with HsLua 1.0.3. This avoids
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hslua-module-system-0.2.1/hslua-module-system.cabal 
new/hslua-module-system-0.2.2/hslua-module-system.cabal
--- old/hslua-module-system-0.2.1/hslua-module-system.cabal     1970-01-01 
01:00:00.000000000 +0100
+++ new/hslua-module-system-0.2.2/hslua-module-system.cabal     2001-09-09 
03:46:40.000000000 +0200
@@ -1,5 +1,5 @@
 name:                hslua-module-system
-version:             0.2.1
+version:             0.2.2
 synopsis:            Lua module wrapper around Haskell's System module.
 
 description:         Provides access to system information and functionality
@@ -14,13 +14,18 @@
 license-file:        LICENSE
 author:              Albert Krewinkel
 maintainer:          [email protected]
-copyright:           Albert Krewinkel <[email protected]>
+copyright:           © 2019-2020 Albert Krewinkel <[email protected]>
 category:            Foreign
 build-type:          Simple
 extra-source-files:  CHANGELOG.md
-                     test/system-module-tests.lua
+                   , test/test-system.lua
 cabal-version:       >=1.10
-tested-with:         GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5
+tested-with:         GHC == 8.0.2
+                   , GHC == 8.2.2
+                   , GHC == 8.4.4
+                   , GHC == 8.6.5
+                   , GHC == 8.8.3
+                   , GHC == 8.10.1
 
 source-repository head
   type:              git
@@ -31,7 +36,7 @@
                      , containers >= 0.5    && < 0.7
                      , directory  >= 1.3    && < 1.4
                      , exceptions >= 0.8    && < 0.11
-                     , hslua      >= 1.0.3  && < 1.2
+                     , hslua      >= 1.0.3  && < 1.3
                      , temporary  >= 1.2    && < 1.4
   default-extensions:  LambdaCase
   default-language:    Haskell2010
@@ -45,10 +50,22 @@
   type:                exitcode-stdio-1.0
   main-is:             test-hslua-module-system.hs
   hs-source-dirs:      test
-  ghc-options:         -Wall -threaded
+  ghc-options:         -Wall
+                       -Wincomplete-record-updates
+                       -Wnoncanonical-monad-instances
+                       -Wredundant-constraints
+  if impl(ghc >= 8.2)
+    ghc-options:         -Wcpp-undef
+                         -Werror=missing-home-modules
+  if impl(ghc >= 8.4)
+    ghc-options:         -Widentities
+                         -Wincomplete-uni-patterns
+                         -Wpartial-fields
+                         -fhide-source-paths
   build-depends:       base
                      , hslua
                      , hslua-module-system
                      , tasty
                      , tasty-hunit
-                     , text 
\ No newline at end of file
+                     , tasty-lua  >= 0.2    && < 0.3
+                     , text
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hslua-module-system-0.2.1/src/Foreign/Lua/Module/System.hs 
new/hslua-module-system-0.2.2/src/Foreign/Lua/Module/System.hs
--- old/hslua-module-system-0.2.1/src/Foreign/Lua/Module/System.hs      
1970-01-01 01:00:00.000000000 +0100
+++ new/hslua-module-system-0.2.2/src/Foreign/Lua/Module/System.hs      
2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
 {-|
 Module      : Foreign.Lua.Module.System
-Copyright   : © 2019 Albert Krewinkel
+Copyright   : © 2019-2020 Albert Krewinkel
 License     : MIT
 Maintainer  : Albert Krewinkel <[email protected]>
 Stability   : alpha
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hslua-module-system-0.2.1/src/Foreign/Lua/Module/SystemUtils.hs 
new/hslua-module-system-0.2.2/src/Foreign/Lua/Module/SystemUtils.hs
--- old/hslua-module-system-0.2.1/src/Foreign/Lua/Module/SystemUtils.hs 
1970-01-01 01:00:00.000000000 +0100
+++ new/hslua-module-system-0.2.2/src/Foreign/Lua/Module/SystemUtils.hs 
2001-09-09 03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
 {-|
 Module      : Foreign.Lua.Module.SystemUtils
-Copyright   : © 2019 Albert Krewinkel
+Copyright   : © 2019-2020 Albert Krewinkel
 License     : MIT
 Maintainer  : Albert Krewinkel <[email protected]>
 Stability   : alpha
@@ -21,7 +21,8 @@
 import Foreign.Lua (Lua, NumResults(..), Peekable, Pushable, StackIndex)
 import qualified Foreign.Lua as Lua
 
--- | Lua callback function
+-- | Lua callback function. This type is similar to @'AnyValue'@, and
+-- the same caveats apply.
 newtype Callback = Callback StackIndex
 
 instance Peekable Callback where
@@ -35,7 +36,11 @@
   push (Callback idx) = Lua.pushvalue idx
 
 
--- | Any value of unknown type
+-- | Any value of unknown type.
+--
+-- This simply wraps the function's index on the Lua stack. Changes to
+-- the stack may only be made with great care, as they can break the
+-- reference.
 newtype AnyValue = AnyValue { fromAnyValue :: StackIndex }
 
 instance Peekable AnyValue where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hslua-module-system-0.2.1/test/system-module-tests.lua 
new/hslua-module-system-0.2.2/test/system-module-tests.lua
--- old/hslua-module-system-0.2.1/test/system-module-tests.lua  1970-01-01 
01:00:00.000000000 +0100
+++ new/hslua-module-system-0.2.2/test/system-module-tests.lua  1970-01-01 
01:00:00.000000000 +0100
@@ -1,124 +0,0 @@
---
--- Tests for the system module
---
-local system = require 'system'
-
--- Check existence static fields
-assert(type(system.arch) == 'string')
-assert(type(system.compiler_name) == 'string')
-assert(type(system.compiler_version) == 'table')
-assert(type(system.os) == 'string')
-
--- getwd
-assert(type(system.getwd()) == 'string')
-
--- env
-assert(type(system.env()) == 'table')
-
--- ls
-assert(type(system.ls('.')) == 'table')
-assert(#system.ls('.') == #system.ls())
--- ls should fail when called on files or non-existent directories
-assert(pcall(system.ls, 'thisdoesnotexist') == false)
-assert(pcall(system.ls, 'README.md') == false)
-
--- mkdir and rmdir
-function in_tmpdir (callback)
-  local orig_dir = system.getwd()
-  return system.with_tmpdir(
-    'hello',
-    function (tmpdir)
-      system.setwd(tmpdir)
-      local result = callback(tmpdir)
-      system.setwd(orig_dir)
-      return result
-    end
-  )
-end
-
-function test_mkdir_rmdir ()
-  -- mkdir
-  assert(not pcall(system.mkdir, '.'), "should not be possible to create `.`")
-  assert(pcall(system.mkdir, 'foo'), "normal dir creation")
-  assert(pcall(system.mkdir, 'foo', true), "dir creation if exists")
-  assert((system.ls())[1] == 'foo')
-  assert(not pcall(system.mkdir, 'bar/baz'),
-         "creation of nested dir")
-  assert(pcall(system.mkdir, 'bar/baz', true),
-         "nested dir creation, including parent directories")
-  assert((system.ls 'bar')[1] == 'baz')
-
-  -- rmdir
-  assert(pcall(system.rmdir, 'foo'), "delete empty directory")
-  assert(not pcall(system.rmdir, 'bar'), "cannot delete non-empty dir")
-  assert(pcall(system.rmdir, 'bar', true), "delete dir recursively")
-  assert(#system.ls() == 0, "dir should be empty")
-end
-in_tmpdir(test_mkdir_rmdir)
-
--- tmpdirname
-assert(type(system.tmpdirname()) == 'string', "tmpdirname should return a 
string")
-
--- with_env
-local outer_value = 'outer test value'
-local inner_value = 'inner test value'
-local inner_only = 'test #2'
-
-function check_env ()
-  assert(os.getenv 'SYSTEM_TEST' == inner_value, "env has test value")
-  assert(os.getenv 'SYSTEM_TEST_INNER_ONLY' == inner_only,
-         "inner only exists")
-  assert(os.getenv 'SYSTEM_TEST_OUTER_ONLY' == nil,
-         "outer only variable should be unset")
-end
-
-local test_env = {
-  SYSTEM_TEST = inner_value,
-  SYSTEM_TEST_INNER_ONLY = inner_only
-}
-system.setenv('SYSTEM_TEST_OUTER_ONLY', outer_value)
-system.setenv('SYSTEM_TEST', outer_value)
-system.with_env(test_env, check_env)
-
-assert(system.getenv 'SYSTEM_TEST' == outer_value, "value was restored")
-assert(system.getenv 'SYSTEM_TEST_INNER_ONLY' == nil, "value was restored")
-assert(system.getenv 'SYSTEM_TEST_OUTER_ONLY' == outer_value,
-       "value was restored")
-
--- with_tmpdir
-local token = 'Banana'
-function write_read_token (tmpdir)
-  local filename = tmpdir .. '/foo.txt'
-  local fh = io.open(filename, 'w')
-  fh:write(token .. '\n')
-  fh:close()
-  return io.open(filename):read '*l'
-end
-
-assert(system.with_tmpdir('.', 'foo', write_read_token) == token)
-assert(system.with_tmpdir('foo', write_read_token) == token)
-
-
--- Complex scripts
-function create_then_count_files ()
-  io.open('README.org', 'w'):close()
-  return #system.ls '.'
-end
-
-assert(in_tmpdir(create_then_count_files) == 1, 'Number of files should be 1')
-
-system.setenv('TESTING', token)
-assert(system.getenv 'TESTING' == token,
-       'setting and getting env var is inconsistent')
-
--- with_wd
-local cwd = system.getwd()
-function check_wd (path)
-  assert(path == system.getwd(), "current path is given as arg")
-  assert(path ~= cwd, "current path has changed from original")
-end
-
-system.with_tmpdir(
-  'wd-test',
-  function (path) return system.with_wd(path, check_wd) end
-)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/hslua-module-system-0.2.1/test/test-hslua-module-system.hs 
new/hslua-module-system-0.2.2/test/test-hslua-module-system.hs
--- old/hslua-module-system-0.2.1/test/test-hslua-module-system.hs      
1970-01-01 01:00:00.000000000 +0100
+++ new/hslua-module-system-0.2.2/test/test-hslua-module-system.hs      
2001-09-09 03:46:40.000000000 +0200
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 {-|
 Module      : Main
-Copyright   : © 2019 Albert Krewinkel
+Copyright   : © 2019-2020 Albert Krewinkel
 License     : MIT
 Maintainer  : Albert Krewinkel <[email protected]>
 Stability   : alpha
@@ -11,16 +11,22 @@
 Tests for the `system` Lua module.
 -}
 
-import Control.Monad (void, when)
+import Control.Monad (void)
 import Foreign.Lua (Lua)
 import Foreign.Lua.Module.System (preloadModule, pushModule)
 import Test.Tasty (TestTree, defaultMain, testGroup)
 import Test.Tasty.HUnit (assertEqual, testCase)
+import Test.Tasty.Lua (translateResultsFromFile)
 
 import qualified Foreign.Lua as Lua
 
 main :: IO ()
-main = defaultMain $ testGroup "hslua-module-system" [tests]
+main = do
+  luaTestResults <- Lua.run $ do
+    Lua.openlibs
+    Lua.requirehs "system" (void pushModule)
+    translateResultsFromFile "test/test-system.lua"
+  defaultMain $ testGroup "hslua-module-system" [tests, luaTestResults]
 
 -- | HSpec tests for the Lua 'system' module
 tests :: TestTree
@@ -40,14 +46,6 @@
       preloadModule "hssystem"
       assertEqual' "loading the module fails " Lua.OK =<<
         Lua.dostring "require 'hssystem'"
-
-  , testCase "Lua tests pass" . Lua.run $ do
-      Lua.openlibs
-      preloadModule "system"
-      assertEqual' "error while running lua tests" Lua.OK =<< do
-        st <- Lua.loadfile "test/system-module-tests.lua"
-        when (st == Lua.OK) $ Lua.call 0 0
-        return st
   ]
 
 assertEqual' :: (Show a, Eq a) => String -> a -> a -> Lua ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hslua-module-system-0.2.1/test/test-system.lua 
new/hslua-module-system-0.2.2/test/test-system.lua
--- old/hslua-module-system-0.2.1/test/test-system.lua  1970-01-01 
01:00:00.000000000 +0100
+++ new/hslua-module-system-0.2.2/test/test-system.lua  2001-09-09 
03:46:40.000000000 +0200
@@ -0,0 +1,199 @@
+--
+-- Tests for the system module
+--
+local system = require 'system'
+local tasty = require 'tasty'
+
+local group = tasty.test_group
+local test = tasty.test_case
+local assert = tasty.assert
+
+--- helper function, combining with_wd and with_tmpdir
+function in_tmpdir (callback)
+  return function ()
+    system.with_tmpdir('test-sytem-tmpdir', function (tmpdir)
+      system.with_wd(tmpdir, callback)
+    end)
+  end
+end
+
+--- dummy string for testing
+local token = 'Banana'
+
+--- check if token can be written into a file in given directory; returns the
+--- content of this file.
+function write_read_token (dir, filename)
+  local filename = string.format('%s/%s', dir, 'foo.txt')
+  local fh = io.open(filename, 'w')
+  fh:write(token .. '\n')
+  fh:close()
+  return io.open(filename):read '*l'
+end
+
+
+-- Check existence static fields
+return {
+  group 'static fields' {
+    test('arch', function ()
+      assert.are_equal(type(system.arch), 'string')
+    end),
+    test('compiler_name', function ()
+      assert.are_equal(type(system.compiler_name), 'string')
+    end),
+    test('compiler_version', function ()
+      assert.are_equal(type(system.compiler_version), 'table')
+    end),
+    test('os', function ()
+      assert.are_equal(type(system.os), 'string')
+    end),
+  },
+
+  group 'environment' {
+    test('getenv returns same result as os.getenv', function ()
+      assert.are_equal(system.getenv 'PATH', os.getenv 'PATH')
+    end),
+
+    test('setenv sets environment values', function ()
+      system.setenv('HSLUA_SYSTEM_MODULE', 'test')
+      assert.are_equal(os.getenv 'HSLUA_SYSTEM_MODULE', 'test')
+    end),
+
+  },
+  group 'getwd' {
+    test('returns a string', function ()
+      assert.are_equal(type(system.getwd()), 'string')
+    end)
+  },
+
+  group 'env' {
+    test('returns a table', function ()
+      assert.are_equal(type(system.env()), 'table')
+    end)
+  },
+
+  group 'ls' {
+    test('returns a table', function ()
+      assert.are_equal(type(system.ls('.')), 'table')
+    end),
+    test('lists files in directory', in_tmpdir(function ()
+      io.open('README.org', 'w'):close()
+      assert.are_same(system.ls '.', {'README.org'})
+    end)),
+    test('argument defaults to `.`', function ()
+      assert.are_equal(#system.ls('.'), #system.ls())
+    end),
+    test('fails when arg is not a directory', function ()
+      assert.error_matches(
+        function () system.ls('thisdoesnotexist') end,
+        'thisdoesnotexist'
+      )
+      assert.error_matches(
+        function () system.ls('README.md') end,
+        'README%.md'
+      )
+    end)
+  },
+
+  group 'mkdir' {
+    test('create directory', in_tmpdir(function ()
+      system.mkdir 'foo'
+      assert.are_equal((system.ls())[1], 'foo')
+    end)),
+    test('create nested directories', in_tmpdir(function ()
+      system.mkdir('foo/bar', true)
+      assert.are_equal((system.ls())[1], 'foo')
+      assert.are_equal((system.ls 'foo')[1], 'bar')
+    end)),
+    test('cannot create existing directory', in_tmpdir(function ()
+      assert.error_matches(function () system.mkdir '.' end, '%.')
+    end)),
+    test('optionally ignores existing directories', in_tmpdir(function ()
+      system.mkdir 'foo'
+      system.mkdir('foo', true)
+    end)),
+    test('normal operation', in_tmpdir(function () system.mkdir 'foo' end)),
+  },
+
+
+  group 'rmdir' {
+    test('remove empty directory', in_tmpdir(function ()
+      system.mkdir 'remove-me'
+      system.rmdir 'remove-me'
+      assert.are_same(system.ls(), {})
+    end)),
+    test('fail if directory is not empty', in_tmpdir(function ()
+      system.mkdir('outer/inner', true)
+      assert.error_matches(function () system.rmdir('outer') end, '.')
+    end)),
+    test('optionally delete recursively', in_tmpdir(function ()
+      system.mkdir('outer/inner', true)
+      system.rmdir('outer', true)
+      assert.are_same(system.ls(), {})
+    end))
+  },
+
+  group 'tmpdirname' {
+    test('returns a string', function ()
+      assert.are_equal(type(system.tmpdirname()), 'string')
+    end)
+  },
+
+  group 'with_env' {
+    test('resets environment', function ()
+           local outer_value = 'outer test value'
+           local inner_value = 'inner test value'
+           local inner_only = 'test #2'
+
+           function check_env ()
+             assert.are_equal(os.getenv 'HSLUA_SYSTEM_TEST', inner_value)
+             assert.are_equal(
+               os.getenv 'HSLUA_SYSTEM_TEST_INNER_ONLY',
+               inner_only
+             )
+             assert.is_nil(os.getenv 'HSLUA_SYSTEM_TEST_OUTER_ONLY')
+           end
+
+           local test_env = {
+             HSLUA_SYSTEM_TEST = inner_value,
+             HSLUA_SYSTEM_TEST_INNER_ONLY = inner_only
+           }
+           system.setenv('HSLUA_SYSTEM_TEST_OUTER_ONLY', outer_value)
+           system.setenv('HSLUA_SYSTEM_TEST', outer_value)
+           system.with_env(test_env, check_env)
+           assert.are_equal(system.getenv 'HSLUA_SYSTEM_TEST', outer_value)
+           assert.is_nil(system.getenv 'HSLUA_SYSTEM_TEST_INNER_ONLY')
+           assert.are_equal(
+             system.getenv 'HSLUA_SYSTEM_TEST_OUTER_ONLY',
+             outer_value
+           )
+    end)
+  },
+
+  group 'with_tmpdir' {
+    test('no base directory given', function ()
+      assert.are_equal(system.with_tmpdir('foo', write_read_token), token)
+    end),
+    test('cwd as base directory', function ()
+      assert.are_equal(system.with_tmpdir('.', 'foo', write_read_token), token)
+    end),
+  },
+
+  group 'with_wd' {
+    test('can change to test directory', function ()
+      system.with_wd('test', function ()
+        local cwd = system.getwd()
+        assert.is_truthy(cwd:match 'test$')
+      end)
+    end),
+    test('returns to old directory once done', function ()
+      local cwd = system.getwd()
+      system.with_wd('test', function () end)
+      assert.are_equal(system.getwd(), cwd)
+    end),
+    test('working directory is passed to callback', function ()
+      system.with_wd('test', function (path)
+        assert.is_truthy(system.getwd():match (path .. '$'))
+      end)
+    end),
+  },
+}


Reply via email to