mirror of https://github.com/skygpu/skynet.git
83 lines
1.9 KiB
Python
83 lines
1.9 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import time
|
||
|
import json
|
||
|
|
||
|
from hashlib import sha256
|
||
|
from functools import partial
|
||
|
|
||
|
import trio
|
||
|
import requests
|
||
|
|
||
|
from skynet.dgpu import open_dgpu_node
|
||
|
|
||
|
|
||
|
def test_enqueue_work(ipfs_node, cleos):
|
||
|
|
||
|
user = cleos.new_account()
|
||
|
req = json.dumps({
|
||
|
'method': 'diffuse',
|
||
|
'params': {
|
||
|
'algo': 'midj',
|
||
|
'prompt': 'skynet terminator dystopic',
|
||
|
'width': 512,
|
||
|
'height': 512,
|
||
|
'guidance': 10,
|
||
|
'step': 28,
|
||
|
'seed': 420,
|
||
|
'upscaler': 'x4'
|
||
|
}
|
||
|
})
|
||
|
binary = ''
|
||
|
|
||
|
ec, out = cleos.push_action(
|
||
|
'telos.gpu', 'enqueue', [user, req, binary], f'{user}@active'
|
||
|
)
|
||
|
|
||
|
assert ec == 0
|
||
|
|
||
|
queue = cleos.get_table('telos.gpu', 'telos.gpu', 'queue')
|
||
|
|
||
|
assert len(queue) == 1
|
||
|
|
||
|
req_on_chain = queue[0]
|
||
|
|
||
|
assert req_on_chain['user'] == user
|
||
|
assert req_on_chain['body'] == req
|
||
|
assert req_on_chain['binary_data'] == binary
|
||
|
|
||
|
ipfs_hash = None
|
||
|
sha_hash = None
|
||
|
for i in range(1, 4):
|
||
|
trio.run(
|
||
|
partial(
|
||
|
open_dgpu_node,
|
||
|
f'testworker{i}',
|
||
|
'active',
|
||
|
cleos,
|
||
|
ipfs_node,
|
||
|
initial_algos=['midj']
|
||
|
)
|
||
|
)
|
||
|
|
||
|
if ipfs_hash == None:
|
||
|
result = cleos.get_table(
|
||
|
'telos.gpu', 'telos.gpu', 'results',
|
||
|
index_position=4,
|
||
|
key_type='name',
|
||
|
lower_bound=f'testworker{i}',
|
||
|
upper_bound=f'testworker{i}'
|
||
|
)
|
||
|
assert len(result) == 1
|
||
|
ipfs_hash = result[0]['ipfs_hash']
|
||
|
sha_hash = result[0]['result_hash']
|
||
|
|
||
|
queue = cleos.get_table('telos.gpu', 'telos.gpu', 'queue')
|
||
|
|
||
|
assert len(queue) == 0
|
||
|
|
||
|
resp = requests.get(f'https://ipfs.io/ipfs/{ipfs_hash}/image.png')
|
||
|
assert resp.status_code == 200
|
||
|
|
||
|
assert sha_hash == sha256(resp.content).hexdigest()
|