Upgrade nixpkgs to the latest nixpkgs-unstable (#84)

* Upgrade nixpkgs to the latest nixpkgs-unstable

* Bump proto3-suite
This commit is contained in:
Moritz Kiefer 2019-08-20 17:47:32 +02:00 committed by Parnell Springmeyer
parent a818985323
commit 6e09678dc7
20 changed files with 67 additions and 269 deletions

3
.gitignore vendored
View file

@ -8,3 +8,6 @@ examples/echo/echo-cpp/echo-server
benchmarks.html
result
*~
cabal.project.local
dist-newstyle/

View file

@ -1,16 +0,0 @@
{ mkDerivation, base, containers, deepseq, random, stdenv
, template-haskell, tf-random, transformers
}:
mkDerivation {
pname = "QuickCheck";
version = "2.10";
sha256 = "f6f55b798044ad985cce9c38a3d774b32811a0ffdb2066ca9ed45f32b25de7af";
libraryHaskellDepends = [
base containers deepseq random template-haskell tf-random
transformers
];
testHaskellDepends = [ base ];
homepage = "https://github.com/nick8325/quickcheck";
description = "Automatic testing of Haskell programs";
license = stdenv.lib.licenses.bsd3;
}

View file

@ -1,32 +0,0 @@
{ mkDerivation, attoparsec, base, base-compat, base-orphans
, base16-bytestring, bytestring, containers, deepseq, directory
, dlist, filepath, generic-deriving, ghc-prim, hashable
, hashable-time, HUnit, integer-logarithms, QuickCheck
, quickcheck-instances, scientific, stdenv, tagged
, template-haskell, test-framework, test-framework-hunit
, test-framework-quickcheck2, text, time, time-locale-compat
, unordered-containers, uuid-types, vector
}:
mkDerivation {
pname = "aeson";
version = "1.1.1.0";
sha256 = "1mkj4a09x9psmgq9sg5nz9va76756zfm97ds2gk2qpgxc7nr2dq8";
revision = "2";
editedCabalFile = "10bc20f8807990e71f5db74a1b7029f81f888c6f9d1c03e93883555fd1291e84";
libraryHaskellDepends = [
attoparsec base base-compat bytestring containers deepseq dlist
ghc-prim hashable scientific tagged template-haskell text time
time-locale-compat unordered-containers uuid-types vector
];
testHaskellDepends = [
attoparsec base base-compat base-orphans base16-bytestring
bytestring containers directory dlist filepath generic-deriving
ghc-prim hashable hashable-time HUnit integer-logarithms QuickCheck
quickcheck-instances scientific tagged template-haskell
test-framework test-framework-hunit test-framework-quickcheck2 text
time time-locale-compat unordered-containers uuid-types vector
];
homepage = "https://github.com/bos/aeson";
description = "Fast JSON parsing and encoding";
license = stdenv.lib.licenses.bsd3;
}

View file

@ -1,10 +0,0 @@
{ mkDerivation, base, Cabal, directory, filepath, stdenv }:
mkDerivation {
pname = "cabal-doctest";
version = "1.0.2";
sha256 = "0h3wsjf2mg8kw1zvxc0f9nzchj5kzvza9z0arcyixkd9rkgqq6sa";
libraryHaskellDepends = [ base Cabal directory filepath ];
homepage = "https://github.com/phadej/cabal-doctest";
description = "A Setup.hs helper for doctests running";
license = stdenv.lib.licenses.bsd3;
}

View file

@ -1,4 +1,4 @@
{ darwin, stdenv, lib, fetchgit, autoconf, automake, libtool, which, zlib
{ darwin, stdenv, lib, fetchgit, fixDarwinDylibNames, autoconf, automake, libtool, which, zlib
, openssl
}:
@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
sha256 = "19ldbjlnbc287hkaylsigm8w9fai2bjdbfxk6315kl75cq54iprr";
};
NIX_CFLAGS_COMPILE = "-Wno-error";
# `grpc`'s `Makefile` does some magic to detect the correct `ld` and `strip`
# to use along with their flags, too. If Nix supplies `$LD` and `$STRIP` then
# this auto-detection fails and the build fails, which is why we unset the
@ -30,7 +32,7 @@ stdenv.mkDerivation rec {
which
zlib
openssl
];
] ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
# Some versions of `ar` (such as the one provided by OS X) require an explicit
# `-r` flag, whereas other versions assume `-r` is the default if no mode is

View file

@ -1,23 +0,0 @@
{ mkDerivation, aeson, base, base-compat, hashable, lens
, QuickCheck, semigroupoids, semigroups, stdenv, tasty
, tasty-quickcheck, text, transformers, unordered-containers
}:
mkDerivation {
pname = "insert-ordered-containers";
version = "0.2.1.0";
sha256 = "1612f455dw37da9g7bsd1s5kyi84mnr1ifnjw69892amyimi47fp";
revision = "3";
editedCabalFile = "6fdce987672b006226243aa17522b57ec7a9e1cab247802eddbdaa9dc5b06446";
libraryHaskellDepends = [
aeson base base-compat hashable lens semigroupoids semigroups text
transformers unordered-containers
];
testHaskellDepends = [
aeson base base-compat hashable lens QuickCheck semigroupoids
semigroups tasty tasty-quickcheck text transformers
unordered-containers
];
homepage = "https://github.com/phadej/insert-ordered-containers#readme";
description = "Associative containers retating insertion order for traversals";
license = stdenv.lib.licenses.bsd3;
}

View file

@ -1,15 +0,0 @@
{ mkDerivation, ansi-wl-pprint, base, bytestring, process
, QuickCheck, stdenv, transformers, transformers-compat
}:
mkDerivation {
pname = "optparse-applicative";
version = "0.14.0.0";
sha256 = "06iwp1qsq0gjhnhxwyhdhldwvhlgcik6lx5jxpbb40fispyk4nxm";
libraryHaskellDepends = [
ansi-wl-pprint base process transformers transformers-compat
];
testHaskellDepends = [ base bytestring QuickCheck ];
homepage = "https://github.com/pcapriotti/optparse-applicative";
description = "Utilities and combinators for parsing command line options";
license = stdenv.lib.licenses.bsd3;
}

View file

@ -1,14 +0,0 @@
{ mkDerivation, base, bytestring, optparse-applicative, semigroups
, stdenv, system-filepath, text, time, transformers, void
}:
mkDerivation {
pname = "optparse-generic";
version = "1.2.1";
sha256 = "1dk945dp98mwk1v4y0cky3z0ngmd29nbg6fbaaxnigcrgpbvkjml";
libraryHaskellDepends = [
base bytestring optparse-applicative semigroups system-filepath
text time transformers void
];
description = "Auto-generate a command-line parser for your datatype";
license = stdenv.lib.licenses.bsd3;
}

View file

@ -1,20 +1,21 @@
{ mkDerivation, aeson, aeson-pretty, attoparsec, base
, base64-bytestring, binary, bytestring, cereal, containers
, contravariant, deepseq, doctest, fetchgit, filepath, foldl
, hashable, haskell-src, insert-ordered-containers, lens, mtl
, neat-interpolation, optparse-applicative, optparse-generic
, parsec, parsers, pretty, pretty-show, proto3-wire, QuickCheck
, quickcheck-instances, range-set-list, safe, semigroups, stdenv
, swagger2, system-filepath, tasty, tasty-hunit, tasty-quickcheck
, text, transformers, turtle, vector
, generic-arbitrary, hashable, haskell-src
, insert-ordered-containers, lens, mtl, neat-interpolation
, optparse-applicative, optparse-generic, parsec, parsers, pretty
, pretty-show, proto3-wire, QuickCheck, quickcheck-instances
, range-set-list, safe, semigroups, stdenv, swagger2
, system-filepath, tasty, tasty-hunit, tasty-quickcheck, text
, transformers, turtle, vector
}:
mkDerivation {
pname = "proto3-suite";
version = "0.4.0.0";
src = fetchgit {
url = "https://github.com/awakesecurity/proto3-suite.git";
sha256 = "091db048hgcq5idvf5gaiqb6hzbs7g1dz6xjqdx61dw2yxgdm957";
rev = "973c317b91405a11438e3a21706024bfa3d754df";
url = "https://github.com/awakesecurity/proto3-suite";
sha256 = "0g7j7axx9rkrzw32ky9xl08zj34rx4mqafd89lrpnsi8lcq2z06j";
rev = "3f6dd6f612cf2eba3c05798926ff924b0d5ab4fa";
fetchSubmodules = true;
};
isLibrary = true;
@ -34,9 +35,9 @@ mkDerivation {
];
testHaskellDepends = [
aeson attoparsec base base64-bytestring bytestring cereal
containers deepseq doctest mtl pretty-show proto3-wire QuickCheck
semigroups swagger2 tasty tasty-hunit tasty-quickcheck text
transformers turtle vector
containers deepseq doctest generic-arbitrary mtl pretty-show
proto3-wire QuickCheck semigroups swagger2 tasty tasty-hunit
tasty-quickcheck text transformers turtle vector
];
description = "A low level library for writing out data in the Protocol Buffers wire format";
license = stdenv.lib.licenses.asl20;

View file

@ -4,11 +4,12 @@
}:
mkDerivation {
pname = "proto3-wire";
version = "1.0.0";
version = "1.1.0";
src = fetchgit {
url = "https://github.com/awakenetworks/proto3-wire.git";
sha256 = "14n0d16an782ayipirm5v2mvp58jgf65xvffqzp08p50sksil3gi";
rev = "a938330bf794cf3fa05591d03906915df98d157c";
url = "https://github.com/awakesecurity/proto3-wire.git";
sha256 = "16l1rnnygwk1b2sb3l6klhr6ad0wvry204icxnc81c6rbzbk6rqc";
rev = "4f355bbac895d577d8a28f567ab4380f042ccc24";
fetchSubmodules = true;
};
libraryHaskellDepends = [
base bytestring cereal containers deepseq hashable QuickCheck safe

View file

@ -1,22 +0,0 @@
{ mkDerivation, array, base, base-compat, bytestring
, case-insensitive, containers, hashable, old-time, QuickCheck
, scientific, stdenv, tagged, text, time, transformers
, transformers-compat, unordered-containers, uuid-types, vector
}:
mkDerivation {
pname = "quickcheck-instances";
version = "0.3.15";
sha256 = "9e0efd0debe1fe390c97d7b3d80d59f3221f2ff4aa1649a1929b4a118156dc0a";
libraryHaskellDepends = [
array base base-compat bytestring case-insensitive containers
hashable old-time QuickCheck scientific tagged text time
transformers transformers-compat unordered-containers uuid-types
vector
];
testHaskellDepends = [
base containers QuickCheck tagged uuid-types
];
homepage = "https://github.com/phadej/qc-instances";
description = "Common quickcheck instances";
license = stdenv.lib.licenses.bsd3;
}

View file

@ -1,27 +0,0 @@
{ mkDerivation, aeson, aeson-qq, base, base-compat, bytestring
, Cabal, cabal-doctest, containers, doctest, generics-sop, Glob
, hashable, hspec, http-media, HUnit, insert-ordered-containers
, lens, mtl, network, QuickCheck, scientific, stdenv
, template-haskell, text, time, transformers, transformers-compat
, unordered-containers, uuid-types, vector
}:
mkDerivation {
pname = "swagger2";
version = "2.1.6";
sha256 = "01a29h56vfyw0ilij1pn6qwy50ca90kyj884vs1q52vvh572758j";
setupHaskellDepends = [ base Cabal cabal-doctest ];
libraryHaskellDepends = [
aeson base base-compat bytestring containers generics-sop hashable
http-media insert-ordered-containers lens mtl network scientific
template-haskell text time transformers transformers-compat
unordered-containers uuid-types vector
];
testHaskellDepends = [
aeson aeson-qq base base-compat bytestring containers doctest Glob
hashable hspec HUnit insert-ordered-containers lens mtl QuickCheck
text time unordered-containers vector
];
homepage = "https://github.com/GetShopTV/swagger2";
description = "Swagger 2.0 data model";
license = stdenv.lib.licenses.bsd3;
}

View file

@ -1,20 +0,0 @@
{ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
, directory, doctest, foldl, hostname, managed, optional-args
, optparse-applicative, process, semigroups, stdenv, stm
, system-fileio, system-filepath, temporary, text, time
, transformers, unix, unix-compat
}:
mkDerivation {
pname = "turtle";
version = "1.3.6";
sha256 = "0fr8p6rnk2lrsgbfh60jlqcjr0nxrh3ywxsj5d4psck0kgyhvg1m";
libraryHaskellDepends = [
ansi-wl-pprint async base bytestring clock directory foldl hostname
managed optional-args optparse-applicative process semigroups stm
system-fileio system-filepath temporary text time transformers unix
unix-compat
];
testHaskellDepends = [ base doctest system-filepath temporary ];
description = "Shell programming, Haskell-style";
license = stdenv.lib.licenses.bsd3;
}

View file

@ -7,7 +7,7 @@
# The SHA256 will be printed as the last line of stdout.
import ./fetch-nixpkgs.nix {
rev = "74286ec9e76be7cd00c4247b9acb430c4bd9f1ce";
sha256 = "0njb3qd2wxj7gil8y61lwh7zacmvr6zklv67w5zmvifi1fvalvdg";
outputSha256 = "13ydgpzl5nix4gc358iy9zjd5nrrpbpwpxmfhis4aai2zmkja3ak";
rev = "fa12335f425808f53121713f501f3335878e6901";
sha256 = "1fjyvjxvymz8yd65ahgm798jp9vdcfy7s58zb5ns2iq2ak0h9j8p";
outputSha256 = "1qkihrm8xfrh93c7wh1d1x01p7mgv82b2ycpmn9jm5l7976g31vr";
}

View file

@ -64,7 +64,7 @@ let
packageOverrides = pkgs: rec {
protobuf3_2NoCheck =
pkgs.stdenv.lib.overrideDerivation
pkgs.pythonPackages.protobuf3_2
pkgs.pythonPackages.protobuf
(oldAttrs : {doCheck = false; doInstallCheck = false;});
cython = pkgs.pythonPackages.buildPythonPackage rec {
@ -178,41 +178,23 @@ let
preBuild = (oldAttributes.preBuild or "") +
pkgs.lib.optionalString pkgs.stdenv.isDarwin ''
export DYLD_LIBRARY_PATH=${grpc}/lib''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH
'' +
pkgs.lib.optionalString pkgs.stdenv.isLinux ''
export LD_LIBRARY_PATH=${grpc}/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
'';
shellHook = (oldAttributes.shellHook or "") +
pkgs.lib.optionalString pkgs.stdenv.isDarwin ''
export DYLD_LIBRARY_PATH=${grpc}/lib''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH
'' +
pkgs.lib.optionalString pkgs.stdenv.isLinux ''
export LD_LIBRARY_PATH=${grpc}/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
'';
}
);
haskellPackages = pkgs.haskellPackages.override {
overrides = haskellPackagesNew: haskellPackagesOld: rec {
attoparsec =
pkgs.haskell.lib.dontCheck haskellPackagesOld.attoparsec;
aeson =
pkgs.haskell.lib.dontCheck
(haskellPackagesNew.callPackage ./nix/aeson.nix {});
cabal-doctest =
haskellPackagesNew.callPackage ./nix/cabal-doctest.nix { };
edit-distance =
pkgs.haskell.lib.dontCheck haskellPackagesOld.edit-distance;
http-media =
pkgs.haskell.lib.dontCheck haskellPackagesOld.http-media;
insert-ordered-containers =
haskellPackagesNew.callPackage ./nix/insert-ordered-containers.nix { };
optparse-applicative =
haskellPackagesNew.callPackage ./nix/optparse-applicative.nix { };
optparse-generic =
haskellPackagesNew.callPackage ./nix/optparse-generic.nix { };
proto3-wire =
haskellPackagesNew.callPackage ./nix/proto3-wire.nix { };
@ -221,12 +203,6 @@ let
pkgs.haskell.lib.dontCheck
(haskellPackagesNew.callPackage ./nix/proto3-suite.nix {});
QuickCheck =
(haskellPackagesNew.callPackage ./nix/QuickCheck.nix {});
quickcheck-instances =
(haskellPackagesNew.callPackage ./nix/quickcheck-instances.nix {});
grpc-haskell-core =
usesGRPC
(pkgs.haskell.lib.overrideCabal
@ -303,12 +279,6 @@ let
})
);
swagger2 =
pkgs.haskell.lib.dontCheck (pkgs.haskell.lib.dontHaddock (haskellPackagesNew.callPackage ./nix/swagger2.nix { }));
turtle =
haskellPackagesNew.callPackage ./nix/turtle.nix { };
};
};
};

View file

@ -2,7 +2,7 @@
# For more information, see: http://docs.haskellstack.org/en/stable/yaml_configuration/
# Specifies the GHC version and set of packages available (e.g., lts-3.5, nightly-2015-09-21, ghc-7.10.2)
resolver: lts-8.23
resolver: lts-14.1
# Local packages, usually specified by relative directory name
packages:
@ -10,17 +10,12 @@ packages:
- 'core'
- location:
git: git@github.com:awakesecurity/proto3-suite.git
commit: bb66853dcaa7372ef061cf83f39e4ba5193898de
commit: 3f6dd6f612cf2eba3c05798926ff924b0d5ab4fa
extra-dep: true
- location:
git: git@github.com:awakesecurity/proto3-wire.git
commit: a938330bf794cf3fa05591d03906915df98d157c
commit: 4f355bbac895d577d8a28f567ab4380f042ccc24
extra-dep: true
# Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)
extra-deps: [ aeson-1.1.1.0
, managed-1.0.5
, swagger2-2.1.6
]
# Override default flag values for local packages and extra-deps
flags: {}

View file

@ -4,7 +4,7 @@
module GeneratedTests where
import Test.Tasty
import Test.Tasty.HUnit (testCase, (@?=))
import Test.Tasty.HUnit (assertEqual, testCase, (@?=))
import Data.String
import Proto3.Suite.DotProto.Generate
@ -78,8 +78,8 @@ testClientGeneration = testCase "client generation" $ do
serverExitCode <- liftIO (wait serverExitCodeA)
clientExitCode <- liftIO (wait clientExitCodeA)
serverExitCode @?= ExitSuccess
clientExitCode @?= ExitSuccess
assertEqual "Server exit code" serverExitCode ExitSuccess
assertEqual "Client exit code" clientExitCode ExitSuccess
rmtree hsTmpDir
rmtree pyTmpDir

View file

@ -31,7 +31,7 @@ import Proto3.Suite
import System.Random
import Test.Tasty
import Test.Tasty.HUnit ((@?=), assertString, testCase)
import Test.Tasty.HUnit ((@?=), assertFailure, testCase)
testNormalCall client = testCase "Normal call" $
do randoms <- fromList <$> replicateM 1000 (randomRIO (1, 1000))
@ -39,7 +39,7 @@ testNormalCall client = testCase "Normal call" $
res <- simpleServiceNormalCall client
(ClientNormalRequest req 10 mempty)
case res of
ClientErrorResponse err -> assertString ("ClientErrorResponse: " <> show err)
ClientErrorResponse err -> assertFailure ("ClientErrorResponse: " <> show err)
ClientNormalResponse res _ _ stsCode _ ->
do stsCode @?= StatusOk
simpleServiceResponseResponse res @?= "NormalRequest"
@ -60,8 +60,8 @@ testClientStreamingCall client = testCase "Client-streaming call" $
(finalName, totalSum) <- readMVar v
case res of
ClientErrorResponse err -> assertString ("ClientErrorResponse: " <> show err)
ClientWriterResponse Nothing _ _ _ _ -> assertString "No response received"
ClientErrorResponse err -> assertFailure ("ClientErrorResponse: " <> show err)
ClientWriterResponse Nothing _ _ _ _ -> assertFailure "No response received"
ClientWriterResponse (Just res) _ _ stsCode _ ->
do stsCode @?= StatusOk
simpleServiceResponseResponse res @?= finalName
@ -74,14 +74,14 @@ testServerStreamingCall client = testCase "Server-streaming call" $
let checkResults [] recv =
do res <- recv
case res of
Left err -> assertString ("recv error: " <> show err)
Left err -> assertFailure ("recv error: " <> show err)
Right Nothing -> pure ()
Right (Just _) -> assertString "recv: elements past end of stream"
Right (Just _) -> assertFailure "recv: elements past end of stream"
checkResults (expNum:nums) recv =
do res <- recv
case res of
Left err -> assertString ("recv error: " <> show err)
Right Nothing -> assertString ("recv: stream ended earlier than expected")
Left err -> assertFailure ("recv error: " <> show err)
Right Nothing -> assertFailure ("recv: stream ended earlier than expected")
Right (Just (SimpleServiceResponse response num)) ->
do response @?= "Test"
num @?= expNum
@ -90,7 +90,7 @@ testServerStreamingCall client = testCase "Server-streaming call" $
ClientReaderRequest (SimpleServiceRequest "Test" (fromList nums)) 10 mempty
(\_ -> checkResults nums)
case res of
ClientErrorResponse err -> assertString ("ClientErrorResponse: " <> show err)
ClientErrorResponse err -> assertFailure ("ClientErrorResponse: " <> show err)
ClientReaderResponse _ sts _ ->
sts @?= StatusOk
@ -104,7 +104,7 @@ testBiDiStreamingCall client = testCase "Bidi-streaming call" $
res <- recv
case res of
Left err -> assertString ("recv error: " <> show err)
Left err -> assertFailure ("recv error: " <> show err)
Right Nothing -> pure ()
Right (Just (SimpleServiceResponse name total)) ->
do name @?= testName
@ -116,7 +116,7 @@ testBiDiStreamingCall client = testCase "Bidi-streaming call" $
res <- simpleServiceBiDiStreamingCall client $
ClientBiDiRequest 10 mempty (\_ -> handleRequests iterations)
case res of
ClientErrorResponse err -> assertString ("ClientErrorResponse: " <> show err)
ClientErrorResponse err -> assertFailure ("ClientErrorResponse: " <> show err)
ClientBiDiResponse _ sts _ ->
sts @?= StatusOk

View file

@ -1,12 +1,14 @@
from simple_pb2 import *
from simple_pb2_grpc import *
import grpc
from uuid import uuid4
import random
import Queue
print "Starting python client"
channel = beta_implementations.insecure_channel('localhost', 50051)
stub = beta_create_SimpleService_stub(channel)
channel = grpc.insecure_channel('localhost:50051')
stub = SimpleServiceStub(channel)
def runTests():
# Test normal call: return a sum of all numbers sent to it
@ -14,7 +16,7 @@ def runTests():
for i in xrange(100):
randints = [random.randint(0, 1000) for _ in xrange(random.randint(10, 1000))]
name = "test%d" % i
response = stub.normalCall(SimpleServiceRequest(request = name, num = randints), 10)
response = stub.normalCall(SimpleServiceRequest(request = name, num = randints), timeout = 10)
assert response.response == name
assert response.num == sum(randints)
@ -31,7 +33,7 @@ def runTests():
esum[0] += sum(nums)
ename[0] += name
yield SimpleServiceRequest(request = name, num = nums)
response = stub.clientStreamingCall(send_requests(expected_sum, expected_response_name), 10)
response = stub.clientStreamingCall(send_requests(expected_sum, expected_response_name), timeout = 10)
assert response.response == expected_response_name[0]
assert response.num == expected_sum[0]
@ -40,7 +42,7 @@ def runTests():
for i in xrange(100):
nums = [random.randint(0, 1000) for _ in xrange(random.randint(0, 1000))]
for response in stub.serverStreamingCall(SimpleServiceRequest(request = "server streaming", num = nums), 60):
for response in stub.serverStreamingCall(SimpleServiceRequest(request = "server streaming", num = nums), timeout = 60):
assert response.num == nums[0]
assert response.response == "server streaming"
nums = nums[1:]
@ -58,14 +60,14 @@ def runTests():
yield SimpleServiceRequest(request = name, num = nums)
for response in stub.biDiStreamingCall(send_requests(), 10):
for response in stub.biDiStreamingCall(send_requests(), timeout = 10):
(exp_name, exp_sum) = requests.get()
assert response.response == exp_name
assert response.num == exp_sum
print "Sending DONE message to server"
stub.done(SimpleServiceDone(), 10)
stub.done(SimpleServiceDone(), timeout = 10)
print "All python client tests against the generated server were successful"
@ -76,6 +78,6 @@ except Exception as e:
print e.__doc__
print e.message
print "Sending DONE message to server before exiting"
stub.done(SimpleServiceDone(), 10)
stub.done(SimpleServiceDone(), timeout = 10)
print "Exiting with failure status"
exit(1)

View file

@ -1,5 +1,7 @@
from simple_pb2 import *
import simple_pb2_grpc
from uuid import uuid4
from concurrent import futures
import random
import Queue
import grpc
@ -8,7 +10,7 @@ print "Starting python server"
done_queue = Queue.Queue()
class SimpleServiceServer(BetaSimpleServiceServicer):
class SimpleServiceServer(simple_pb2_grpc.SimpleServiceServicer):
def done(self, request, context):
global server
done_queue.put_nowait(())
@ -34,7 +36,8 @@ class SimpleServiceServer(BetaSimpleServiceServicer):
for request in requests:
yield SimpleServiceResponse(response = request.request, num = sum(request.num))
server = beta_create_SimpleService_server(SimpleServiceServer())
server = grpc.server(futures.ThreadPoolExecutor(max_workers=1))
simple_pb2_grpc.add_SimpleServiceServicer_to_server(SimpleServiceServer(), server)
server.add_insecure_port('[::]:50051')
server.start()