Merge branch 'clavoie-takt-extract-lowlevel' of github.com:clavoie-takt/gRPC-haskell into clavoie-takt-clavoie-takt-extract-lowlevel

This commit is contained in:
Gabriel Gonzalez 2018-01-26 09:42:45 -08:00
commit d33e22e92c
37 changed files with 143 additions and 47 deletions

1
core/LICENSE Symbolic link
View file

@ -0,0 +1 @@
../LICENSE

1
core/README.md Symbolic link
View file

@ -0,0 +1 @@
../README.md

1
core/Setup.hs Symbolic link
View file

@ -0,0 +1 @@
../Setup.hs

View file

@ -0,0 +1,119 @@
name: grpc-haskell-core
version: 0.0.0.0
synopsis: Haskell implementation of gRPC layered on shared C library.
homepage: https://github.com/awakenetworks/gRPC-haskell
license: Apache-2.0
license-file: LICENSE
author: Awake Networks
maintainer: opensource@awakenetworks.com
copyright: Copyright 2016 Awake Networks
category: Network
build-type: Simple
cabal-version: >=1.10
Flag Debug
Description: Adds debug logging.
Manual: True
Default: False
library
build-depends:
base >=4.8 && <5.0
, clock >=0.6.0 && <0.8.0
, bytestring ==0.10.*
, stm == 2.4.*
, containers ==0.5.*
, managed >= 1.0.0 && < 1.1
, pipes >=4.1 && <=4.4
, transformers
, proto3-suite
, proto3-wire
, async ==2.1.*
, tasty >= 0.11 && <0.12
, tasty-hunit >= 0.9 && <0.10
, tasty-quickcheck >= 0.8.4 && < 0.9
, safe ==0.3.*
, vector
, sorted-list >=0.1.6.1 && <=0.3
c-sources:
cbits/grpc_haskell.c
exposed-modules:
-- NOTE: the order of these matters to c2hs.
Network.GRPC.Unsafe.Constants
Network.GRPC.Unsafe.Time
Network.GRPC.Unsafe.Slice
Network.GRPC.Unsafe.ChannelArgs
Network.GRPC.Unsafe.ByteBuffer
Network.GRPC.Unsafe.Metadata
Network.GRPC.Unsafe.Op
Network.GRPC.Unsafe
Network.GRPC.Unsafe.Security
Network.GRPC.LowLevel
Network.GRPC.LowLevel.Server.Unregistered
Network.GRPC.LowLevel.Client.Unregistered
Network.GRPC.LowLevel.CompletionQueue
Network.GRPC.LowLevel.CompletionQueue.Internal
Network.GRPC.LowLevel.CompletionQueue.Unregistered
Network.GRPC.LowLevel.GRPC
Network.GRPC.LowLevel.Op
Network.GRPC.LowLevel.Server
Network.GRPC.LowLevel.Call
Network.GRPC.LowLevel.Call.Unregistered
Network.GRPC.LowLevel.Client
extra-libraries:
grpc
includes:
include/grpc_haskell.h
, grpc/grpc.h
, grpc/status.h
, grpc/support/time.h
, grpc/impl/codegen/compression_types.h
, grpc/slice_buffer.h
, grpc/slice.h
build-tools: c2hs
default-language: Haskell2010
ghc-options: -Wall -fwarn-incomplete-patterns -fno-warn-unused-do-bind
include-dirs: include
hs-source-dirs: src
default-extensions: CPP
CC-Options: -std=c99
if flag(debug)
CPP-Options: -DDEBUG
CC-Options: -DGRPC_HASKELL_DEBUG -std=c99
test-suite tests
build-depends:
base >=4.8 && <5.0
, grpc-haskell-core
, bytestring ==0.10.*
, unix
, time
, async
, tasty >= 0.11 && <0.12
, tasty-hunit >= 0.9 && <0.10
, tasty-quickcheck >= 0.8.4 && < 0.9
, containers ==0.5.*
, managed >= 1.0.0 && < 1.1
, pipes >=4.1 && <=4.4
, proto3-suite
, transformers
, safe
, clock >=0.6.0 && <0.8.0
, turtle >= 1.2.0
, text
, QuickCheck >=2.8 && <3.0
other-modules:
LowLevelTests,
LowLevelTests.Op,
UnsafeTests
default-language: Haskell2010
ghc-options: -Wall -fwarn-incomplete-patterns -fno-warn-unused-do-bind -g -threaded -rtsopts
hs-source-dirs: tests
main-is: Properties.hs
type: exitcode-stdio-1.0
default-extensions: CPP
if flag(debug)
CPP-Options: -DDEBUG
CC-Options: -DGRPC_HASKELL_DEBUG

12
core/tests/Properties.hs Normal file
View file

@ -0,0 +1,12 @@
import LowLevelTests
import LowLevelTests.Op
import Test.Tasty
import UnsafeTests
main :: IO ()
main = defaultMain $ testGroup "GRPC Unit Tests"
[ unsafeTests
, unsafeProperties
, lowLevelOpTests
, lowLevelTests
]

View file

@ -33,6 +33,7 @@ library
, transformers , transformers
, proto3-suite , proto3-suite
, proto3-wire , proto3-wire
, grpc-haskell-core
, async ==2.1.* , async ==2.1.*
, tasty >= 0.11 && <0.12 , tasty >= 0.11 && <0.12
@ -42,46 +43,12 @@ library
, vector , vector
, sorted-list >=0.1.6.1 && <=0.3 , sorted-list >=0.1.6.1 && <=0.3
c-sources:
cbits/grpc_haskell.c
exposed-modules: exposed-modules:
-- NOTE: the order of these matters to c2hs.
Network.GRPC.Unsafe.Constants
Network.GRPC.Unsafe.Time
Network.GRPC.Unsafe.Slice
Network.GRPC.Unsafe.ChannelArgs
Network.GRPC.Unsafe.ByteBuffer
Network.GRPC.Unsafe.Metadata
Network.GRPC.Unsafe.Op
Network.GRPC.Unsafe
Network.GRPC.Unsafe.Security
Network.GRPC.LowLevel
Network.GRPC.LowLevel.Server.Unregistered
Network.GRPC.LowLevel.Client.Unregistered
Network.GRPC.LowLevel.CompletionQueue
Network.GRPC.LowLevel.CompletionQueue.Internal
Network.GRPC.LowLevel.CompletionQueue.Unregistered
Network.GRPC.LowLevel.GRPC
Network.GRPC.LowLevel.Op
Network.GRPC.LowLevel.Server
Network.GRPC.LowLevel.Call
Network.GRPC.LowLevel.Call.Unregistered
Network.GRPC.LowLevel.Client
Network.GRPC.HighLevel Network.GRPC.HighLevel
Network.GRPC.HighLevel.Generated Network.GRPC.HighLevel.Generated
Network.GRPC.HighLevel.Server Network.GRPC.HighLevel.Server
Network.GRPC.HighLevel.Server.Unregistered Network.GRPC.HighLevel.Server.Unregistered
Network.GRPC.HighLevel.Client Network.GRPC.HighLevel.Client
extra-libraries:
grpc
includes:
include/grpc_haskell.h
, grpc/grpc.h
, grpc/status.h
, grpc/support/time.h
, grpc/impl/codegen/compression_types.h
, grpc/slice_buffer.h
, grpc/slice.h
build-tools: c2hs build-tools: c2hs
default-language: Haskell2010 default-language: Haskell2010
ghc-options: -Wall -fwarn-incomplete-patterns -fno-warn-unused-do-bind ghc-options: -Wall -fwarn-incomplete-patterns -fno-warn-unused-do-bind
@ -101,6 +68,7 @@ executable hellos-server
, bytestring == 0.10.* , bytestring == 0.10.*
, containers ==0.5.* , containers ==0.5.*
, grpc-haskell , grpc-haskell
, grpc-haskell-core
, proto3-suite , proto3-suite
, proto3-wire , proto3-wire
, text , text
@ -120,6 +88,7 @@ executable hellos-client
, bytestring == 0.10.* , bytestring == 0.10.*
, containers ==0.5.* , containers ==0.5.*
, grpc-haskell , grpc-haskell
, grpc-haskell-core
, proto3-suite , proto3-suite
, proto3-wire , proto3-wire
, text , text
@ -139,6 +108,7 @@ executable echo-server
, bytestring == 0.10.* , bytestring == 0.10.*
, containers ==0.5.* , containers ==0.5.*
, grpc-haskell , grpc-haskell
, grpc-haskell-core
, optparse-generic , optparse-generic
, proto3-suite , proto3-suite
, proto3-wire , proto3-wire
@ -162,6 +132,7 @@ executable arithmetic-server
, bytestring == 0.10.* , bytestring == 0.10.*
, containers ==0.5.* , containers ==0.5.*
, grpc-haskell , grpc-haskell
, grpc-haskell-core
, optparse-generic , optparse-generic
, proto3-suite , proto3-suite
, proto3-wire , proto3-wire
@ -184,6 +155,7 @@ executable arithmetic-client
, bytestring == 0.10.* , bytestring == 0.10.*
, containers ==0.5.* , containers ==0.5.*
, grpc-haskell , grpc-haskell
, grpc-haskell-core
, optparse-generic , optparse-generic
, proto3-suite , proto3-suite
, proto3-wire , proto3-wire
@ -206,6 +178,7 @@ executable echo-client
, bytestring == 0.10.* , bytestring == 0.10.*
, containers ==0.5.* , containers ==0.5.*
, grpc-haskell , grpc-haskell
, grpc-haskell-core
, optparse-generic , optparse-generic
, proto3-suite , proto3-suite
, proto3-wire , proto3-wire
@ -243,9 +216,6 @@ test-suite tests
, text , text
, QuickCheck >=2.8 && <3.0 , QuickCheck >=2.8 && <3.0
other-modules: other-modules:
LowLevelTests,
LowLevelTests.Op,
UnsafeTests,
GeneratedTests GeneratedTests
default-language: Haskell2010 default-language: Haskell2010
ghc-options: -Wall -fwarn-incomplete-patterns -fno-warn-unused-do-bind -g -threaded -rtsopts ghc-options: -Wall -fwarn-incomplete-patterns -fno-warn-unused-do-bind -g -threaded -rtsopts

View file

@ -7,6 +7,7 @@ resolver: lts-8.23
# Local packages, usually specified by relative directory name # Local packages, usually specified by relative directory name
packages: packages:
- '.' - '.'
- 'core'
- location: - location:
git: git@github.com:awakenetworks/proto3-suite.git git: git@github.com:awakenetworks/proto3-suite.git
commit: bb66853dcaa7372ef061cf83f39e4ba5193898de commit: bb66853dcaa7372ef061cf83f39e4ba5193898de

View file

@ -1,14 +1,5 @@
import LowLevelTests
import LowLevelTests.Op
import Test.Tasty import Test.Tasty
import UnsafeTests
import GeneratedTests import GeneratedTests
main :: IO () main :: IO ()
main = defaultMain $ testGroup "GRPC Unit Tests" main = defaultMain $ testGroup "GRPC Unit Tests" [ generatedTests ]
[ unsafeTests
, unsafeProperties
, lowLevelOpTests
, lowLevelTests
, generatedTests
]